1 import matplotlib.pyplot as plt 2 import numpy as np 3 4 # 加载数据 5 res = np.load("./国民经济核算季度数据.npz", allow_pickle=True) 6 7 columns = res["columns"] 8 values = res["values"] 9 10 print("columns:\n", columns) 11 print("values:\n", values) 12 13 # 绘图三部曲 14 # 1、创建画布,并返回画布对象 15 fig = plt.figure(figsize=(20,10),dpi=120) 16 # 增加RC参数 17 # 默认不支持中文 18 # 修改RC参数,来让其支持中文 19 plt.rcParams['font.sans-serif'] = 'SimHei' 20 plt.rcParams['axes.unicode_minus'] = False 21 22 # 给画布里面添加 多个坐标系 23 # 参数1 子图的行数 24 # 参数2 子图的列数 25 # 参数3 第几个子图 26 fig.add_subplot(2, 1, 1) 27 28 # 2、绘图 29 # 横轴---时间(直接绘制的时候,不允许使用中文)---先用序号来代替时间 30 # 纵轴----生产总值 31 32 # 自己生成 33 x = np.arange(1, values.shape[0] + 1) 34 print("x:\n", x) 35 36 y1 = values[:, 3] 37 y2 = values[:, 4] 38 y3 = values[:, 5] 39 40 print("y1:\n", y1) 41 print("y2:\n", y2) 42 print("y3:\n", y3) 43 44 # 绘图---自己可以构建各种rc来区别点线 45 plt.plot(x, y1) 46 plt.plot(x, y2) 47 plt.plot(x, y3) 48 49 # 增加标题 50 plt.title("2000-2017年各产业、行业季度生产总值走势图") 51 52 legend = [tmp[:4] for tmp in columns[3:6]] 53 # 增加图例 54 plt.legend(legend, loc=2) 55 56 # # 增加横轴名称 57 # plt.xlabel("季度") 58 59 # 增加纵轴名称 60 plt.ylabel("生产总值(亿元)") 61 62 63 64 # 第二个子图 65 fig.add_subplot(2, 1, 2) 66 x = values[:, 0] 67 y1 = values[:, 6] 68 y2 = values[:, 7] 69 y3 = values[:, 8] 70 y4 = values[:, 9] 71 y5 = values[:, 10] 72 y6 = values[:, 11] 73 y7 = values[:, 12] 74 y8 = values[:, 13] 75 y9 = values[:, 14] 76 77 # 绘制 图形 78 plt.plot(x,y1) 79 plt.plot(x,y2) 80 plt.plot(x,y3) 81 plt.plot(x,y4) 82 plt.plot(x,y5) 83 plt.plot(x,y6) 84 plt.plot(x,y7) 85 plt.plot(x,y8) 86 plt.plot(x,y9) 87 88 89 # 纵轴名称 90 plt.ylabel("生产总值(亿元)") 91 # 横轴名称 92 plt.xlabel("季度") 93 94 # 设置横轴刻度 95 96 xticks = values[:, 1] 97 # plt.xticks(x, xticks, rotation=75) 98 plt.xticks(x[::4], xticks[::4], rotation=45, horizontalalignment="center") 99 100 legend = [tmp[:2] for tmp in columns[6:]] 101 # 增加图例 102 plt.legend(legend,loc=2) 103 104 # 保存图片 105 plt.savefig("./2000-2017年各产业、行业季度生产总值走势图.png") 106 107 108 # 3、图形展示 109 plt.show()