import matplotlib.pyplot as plt
import numpy as np
# 加载数据
data = np.load('国民经济核算季度数据.npz', allow_pickle=True)
columns = data['columns']
values = data['values']
# 想用中文必须进行设置RC参数
plt.rcParams['font.sans-serif'] = 'SimHei'
# 设置RC参数字体,让其支持中文
plt.rcParams['axes.unicode_minus'] = False
# 一个画布里面绘制多个图形
# 增加子图
# 创建画布,返回画布对象
fig = plt.figure(figsize=(40, 40),dpi=200)
# 给画布对象增加子图
# 参数1,2 表示增加的子图是几行几列,参数3表示第几张图
# 从该代码开始到下一个相同代码的内容都是这个子图的内容
fig.add_subplot(2, 1, 1)
x1 = values[:, 0]
# print(x)
# 第三列、第四列、第五列
y1 = values[:,3]
y2 = values[:,4]
y3 = values[:,5]
# 绘制图形
plt.plot(x1, y1, linestyle='--',marker='s')
plt.plot(x1, y2, linestyle='-',marker='s')
plt.plot(x1, y3, linestyle=':',marker='s')
# 增加修饰
# 增加标题
plt.title('2000-2017年各产业季度生产总值')
# 增加xy标签
plt.xlabel('时间')
plt.ylabel('各产业季度生产总值')
# 进行x刻度设置
x_label = values[:,1]
plt.xticks(x1[::4], x_label[::4], rotation=45, fontsize='xx-small')
# loc 参数可以设置图形位置
plt.legend(['第一产业','第二产业','第三产业'],loc='best', fontsize='xx-small')
fig.add_subplot(2, 1, 2)
# 准备数据
x2 = values[:, 0]
y4 = values[:, 6]
y5 = values[:, 7]
y6 = values[:, 8]
y7 = values[:, 9]
y8 = values[:, 10]
y9 = values[:, 11]
y10 = values[:, 12]
y11 = values[:, 13]
y12 = values[:, 14]
y13 = values[:, 6]
plt.scatter(x2, y4, marker='*')
plt.scatter(x2, y5, marker='o')
plt.scatter(x2, y6, marker='+')
plt.scatter(x2, y7, marker='.')
plt.scatter(x2, y8, marker='s')
plt.scatter(x2, y9, marker='d')
plt.scatter(x2, y10, marker='p')
plt.scatter(x2, y11, marker='*')
plt.scatter(x2, y12, marker='h')
# 增加标题
plt.title('2000-2017年各产业季度成产总值')
# 增加标签
plt.xlabel('时间')
plt.ylabel('各产业生产总值(亿元)', rotation=90)
# 增加刻度
x_label = values[:, 1]
plt.xticks(x2[::4], x_label[::4], rotation=45, fontsize='xx-small')
# 增加图例
plt.legend(["农业","工业","建筑业","批发业","交通业","餐饮业","房地产业","金融业","其他产业"], loc='best', fontsize='xx-small')
# 保存图片
plt.savefig('2000-2017年各产业生产总值')
# 图形展示
plt.show()