1 import matplotlib.pyplot as plt
2 import numpy as np
3
4
5 # 构建数据
6 def build_data():
7 res = np.load("./国民经济核算季度数据.npz", allow_pickle=True)
8 columns = res["columns"]
9 values = res["values"]
10 return columns, values
11
12 def show_data(columns, values):
13 fig = plt.figure()
14 plt.rcParams['font.sans-serif'] = 'SimHei'
15 plt.rcParams['axes.unicode_minus'] = False
16
17 fig.add_subplot(2, 1, 1)
18 x = (list(values[:, 3]), list(values[:, 4]), list(values[:, 5]))
19 labels = [tmp[:4] for tmp in columns[3:6]]
20 plt.boxplot(x, notch=True, labels=labels, meanline=True, showmeans=True)
21 plt.title("2000-2017年各个产业生产总值箱线图")
22 plt.xlabel("产业")
23 plt.ylabel("生产总值(亿元)")
24
25 fig.add_subplot(2, 1, 2)
26 x = (list(values[:, 6]), list(values[:, 7]), list(values[:, 8]), list(values[:, 9]), list(values[:, 10]), list(values[:, 11]), list(values[:, 12]), list(values[:, 13]), list(values[:, 14]))
27 labels = [tmp[:2] for tmp in columns[6:]]
28 plt.boxplot(x, notch=True, labels=labels, meanline=True, showmeans=True)
29 plt.title("2000-2017年各个行业生产总值箱线图")
30 plt.xlabel("行业")
31 plt.ylabel("生产总值(亿元)")
32
33 plt.savefig("./2000-2017年各个产业生产总值箱线图.png")
34 plt.show()
35
36
37 def main():
38 columns, values = build_data()
39 show_data(columns, values)
40
41 if __name__ == '__main__':
42 main()
绘制更多的图,参考网址:https://matplotlib.org/gallery/index.html
echarts
pyecharts