1 # -*- coding: utf-8 -*- 2 3 ############################################################################### 4 ####################### 正文代码 ####################### 5 ############################################################################### 6 7 # 代码 3-5 8 import numpy as np 9 import matplotlib.pyplot as plt 10 plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示 11 plt.rcParams['axes.unicode_minus'] = False 12 data = np.load('../data/国民经济核算季度数据.npz') 13 name = data['columns'] ## 提取其中的columns数组,视为数据的标签 14 values = data['values']## 提取其中的values数组,数据的存在位置 15 16 plt.figure(figsize=(8,7))## 设置画布 17 plt.scatter(values[:,0],values[:,2], marker='o')## 绘制散点图 18 plt.xlabel('年份')## 添加横轴标签 19 plt.ylabel('生产总值(亿元)')## 添加y轴名称 20 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 21 plt.title('2000-2017年季度生产总值散点图')## 添加图表标题 22 plt.savefig('../tmp/2000-2017年季度生产总值散点图.png') 23 plt.show() 24 25 26 27 # 代码 3-6 28 plt.figure(figsize=(8,7))## 设置画布 29 ## 绘制散点1 30 plt.scatter(values[:,0],values[:,3], marker='o',c='red') 31 ## 绘制散点2 32 plt.scatter(values[:,0],values[:,4], marker='D',c='blue') 33 ## 绘制散点3 34 plt.scatter(values[:,0],values[:,5], marker='v',c='yellow') 35 plt.xlabel('年份')## 添加横轴标签 36 plt.ylabel('生产总值(亿元)')## 添加纵轴标签 37 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 38 plt.title('2000-2017年各产业季度生产总值散点图')## 添加图表标题 39 plt.legend(['第一产业','第二产业','第三产业'])## 添加图例 40 plt.savefig('../tmp/2000-2017年各产业季度生产总值散点图.png') 41 plt.show() 42 43 44 # 代码 3-7 45 plt.figure(figsize=(8,7))## 设置画布 46 ## 绘制折线图 47 plt.plot(values[:,0],values[:,2],color = 'r',linestyle = '--') 48 plt.xlabel('年份')## 添加横轴标签 49 plt.ylabel('生产总值(亿元)')## 添加y轴名称 50 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 51 plt.title('2000-2017年季度生产总值折线图')## 添加图表标题 52 plt.savefig('../tmp/2000-2017年季度生产总值折线图.png') 53 plt.show() 54 55 56 57 # 代码 3-8 58 plt.figure(figsize=(8,7))## 设置画布 59 plt.plot(values[:,0],values[:,2],color = 'r',linestyle = '--', 60 marker = 'o')## 绘制折线图 61 plt.xlabel('年份')## 添加横轴标签 62 plt.ylabel('生产总值(亿元)')## 添加y轴名称 63 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 64 plt.title('2000-2017年季度生产总值点线图')## 添加图表标题 65 plt.savefig('../tmp/2000-2017年季度生产总值点线图.png') 66 plt.show() 67 68 69 70 # 代码 3-9 71 plt.figure(figsize=(8,7))## 设置画布 72 plt.plot(values[:,0],values[:,3],'bs-', 73 values[:,0],values[:,4],'ro-.', 74 values[:,0],values[:,5],'gH--')## 绘制折线图 75 plt.xlabel('年份')## 添加横轴标签 76 plt.ylabel('生产总值(亿元)')## 添加y轴名称 77 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 78 plt.title('2000-2017年各产业季度生产总值折线图')## 添加图表标题 79 plt.legend(['第一产业','第二产业','第三产业']) 80 plt.savefig('../tmp/2000-2017年季度各产业生产总值折线图.png') 81 plt.show() 82 83 84 85 ############################################################################### 86 ####################### 任务实现 ####################### 87 ############################################################################### 88 89 # 代码 3-10 90 import numpy as np 91 import matplotlib.pyplot as plt 92 plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示 93 plt.rcParams['axes.unicode_minus'] = False 94 data = np.load('../data/国民经济核算季度数据.npz') 95 name = data['columns']## 提取其中的columns数组,视为数据的标签 96 values = data['values']## 提取其中的values数组,数据的存在位置 97 p = plt.figure(figsize=(12,12)) ##设置画布 98 99 ## 子图1 100 ax1 = p.add_subplot(2,1,1) 101 plt.scatter(values[:,0],values[:,3], marker='o',c='r')## 绘制散点 102 plt.scatter(values[:,0],values[:,4], marker='D',c='b')## 绘制散点 103 plt.scatter(values[:,0],values[:,5], marker='v',c='y')## 绘制散点 104 plt.ylabel('生产总值(亿元)')## 添加纵轴标签 105 plt.title('2000-2017年各产业季度生产总值散点图')## 添加图表标题 106 plt.legend(['第一产业','第二产业','第三产业'])## 添加图例 107 108 ## 子图2 109 ax2 = p.add_subplot(2,1,2) 110 plt.scatter(values[:,0],values[:,6], marker='o',c='r')## 绘制散点 111 plt.scatter(values[:,0],values[:,7], marker='D',c='b')## 绘制散点 112 plt.scatter(values[:,0],values[:,8], marker='v',c='y')## 绘制散点 113 plt.scatter(values[:,0],values[:,9], marker='8',c='g')## 绘制散点 114 plt.scatter(values[:,0],values[:,10], marker='p',c='c')## 绘制散点 115 plt.scatter(values[:,0],values[:,11], marker='+',c='m')## 绘制散点 116 plt.scatter(values[:,0],values[:,12], marker='s',c='k')## 绘制散点 117 ## 绘制散点 118 plt.scatter(values[:,0],values[:,13], marker='*',c='purple') 119 ## 绘制散点 120 plt.scatter(values[:,0],values[:,14], marker='d',c='brown') 121 plt.legend(['农业','工业','建筑','批发','交通', 122 '餐饮','金融','房地产','其他']) 123 plt.xlabel('年份')## 添加横轴标签 124 plt.ylabel('生产总值(亿元)')## 添加纵轴标签 125 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 126 plt.savefig('../tmp/2000-2017年季度各行业生产总值散点子图.png') 127 plt.show() 128 129 130 131 # 代码 3-11 132 p1 = plt.figure(figsize=(8,7))## 设置画布 133 ## 子图1 134 ax3 = p1.add_subplot(2,1,1) 135 plt.plot(values[:,0],values[:,3],'b-', 136 values[:,0],values[:,4],'r-.', 137 values[:,0],values[:,5],'g--')## 绘制折线图 138 plt.ylabel('生产总值(亿元)')## 添加纵轴标签 139 plt.title('2000-2017年各产业季度生产总值折线图')## 添加图表标题 140 plt.legend(['第一产业','第二产业','第三产业'])## 添加图例 141 ## 子图2 142 ax4 = p1.add_subplot(2,1,2) 143 plt.plot(values[:,0],values[:,6], 'r-',## 绘制折线图 144 values[:,0],values[:,7], 'b-.',## 绘制折线图 145 values[:,0],values[:,8],'y--',## 绘制折线图 146 values[:,0],values[:,9], 'g:',## 绘制折线图 147 values[:,0],values[:,10], 'c-',## 绘制折线图 148 values[:,0],values[:,11], 'm-.',## 绘制折线图 149 values[:,0],values[:,12], 'k--',## 绘制折线图 150 values[:,0],values[:,13], 'r:',## 绘制折线图 151 values[:,0],values[:,14], 'b-')## 绘制折线图 152 plt.legend(['农业','工业','建筑','批发','交通', 153 '餐饮','金融','房地产','其他']) 154 plt.xlabel('年份')## 添加横轴标签 155 plt.ylabel('生产总值(亿元)')## 添加纵轴标签 156 plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45) 157 plt.savefig('../tmp/2000-2017年季度各行业生产总值折线子图.png') 158 plt.show()