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