发文统计

  |  

摘要: 统计本站每个月写的文章数量

【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:潮汐朝夕
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


发文
5 2020 28
6 2020 19
7 2020 19
8 2020 64
9 2020 91
10 2020 80
11 2020 93
12 2020 13
2 2021 2
3 2021 96
4 2021 62
5 2021 57
6 2021 54
7 2021 18
8 2021 5
9 2021 43
10 2021 78
11 2021 25
12 2021 51
1 2022 98
2 2022 52
3 2022 36
4 2022 36
5 2022 29
6 2022 32
7 2022 31
8 2022 25
9 2022 51

把以上表格内容复制到 data.csv 中,形成 csv 文件,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
月,年,发文
5,2020,28
6,2020,19
7,2020,19
8,2020,64
9,2020,91
10,2020,80
11,2020,93
12,2020,13
2,2021,2
3,2021,96
4,2021,62
5,2021,57
6,2021,54
7,2021,18
8,2021,5
9,2021,43
10,2021,78
11,2021,25
12,2021,51
1,2022,98
2,2022,52
3,2022,36
4,2022,36
5,2022,29
6,2022,32
7,2022,31
8,2022,25
9,2022,51

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

font = fm.FontProperties(fname="./思源宋体-Regular-1.otf")

df = pd.read_csv("data.csv")

def func(row):
return "{}.{}".format(row["年"], row["月"])

df["时间"] = df.apply(func, axis=1)
df.insert(loc=1, column="累计发文", value=np.cumsum(np.array(df["发文"])))

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.set_title("每月发文柱状图", fontproperties=font)
df.plot.barh(x="时间", y="发文", ax=ax, legend=False)
ax.set_xlabel("时间", fontproperties=font)
ax.set_ylabel("发文", fontproperties=font)
fig.savefig("每月发文.png", bbox_inches="tight")

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.set_title("每月累计发文折线图", fontproperties=font)
ax.set_xlabel("时间", fontproperties=font)
ax.set_ylabel("发文", fontproperties=font)
df.plot.bar(x="时间", y="发文", ax=ax, legend=False, color="red", alpha=0.5)
ax2 = ax.twinx()
ax2.set_ylabel("累计发文", fontproperties=font)
df.plot(x="时间", y="累计发文", ax=ax2, legend=False)
xticks = list(range(0, len(df["时间"]), 4))
xlabels = [df["时间"].iloc[x] for x in xticks]
xticks.append(len(df["时间"]) - 1)
xlabels.append(df["时间"].iloc[-1])
ax2.set_xticks(xticks)
ax2.set_xticklabels(xlabels, rotation=40)
fig.autofmt_xdate()
fig.savefig("每月累计发文.png", bbox_inches="tight")

结果

每月累计发文

每月发文


Share