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()