上机题1:参考下面程序,编写绘制 方程 y = 3x+21的图像,从(-2,2)均匀取90个点。
#绘制 方程 y = 2x 图像
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,50) #从(-1,1)均匀取50个点
y = 2 * x
plt.plot(x,y)
plt.show()
上机题2:调试运行讲解的示例题,并发挥自己的创意,改写相应程序。
# -*- coding: utf-8 -*-
##################################################
################ 第1题 #######################
######################################################
import matplotlib.pyplot as plt
import numpy as np
data = np.load('../data/国民经济核算季度数据.npz',allow_pickle = True)
name = data['columns'] # 提取columns数组,视为数据的标签
values = data['values'] # 提取values数组,数据的存在位置
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 各产业
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(values[:, 1], values[:, 3])
ax1.scatter(values[:, 1], values[:, 4])
ax1.scatter(values[:, 1], values[:, 5])
ax1.legend(['第一产业', '第二产业', '第三产业'])
ax1.set_xlabel('年份')
ax1.set_ylabel('生产总值(亿元)')
ax1.set_xticks(values[range(0, 70, 4), 1])
ax1.set_title('2000~2017年季度各产业生产总值散点图')
# 各行业
ax2.scatter(values[:, 1], values[:, 6])
ax2.scatter(values[:, 1], values[:, 7])
ax2.scatter(values[:, 1], values[:, 8])
ax2.scatter(values[:, 1], values[:, 9])
ax2.scatter(values[:, 1], values[:, 10])
ax2.scatter(values[:, 1], values[:, 11])
ax2.scatter(values[:, 1], values[:, 12])
ax2.scatter(values[:, 1], values[:, 13])
ax2.scatter(values[:, 1], values[:, 14])
ax2.legend(['农林牧渔业', '工业', '建筑业', '批发和零售业', '交通运输、仓储和邮政业',
'住宿和餐饮业', '金融业', '房地产业', '其他行业'])
ax2.set_xlabel('年份')
ax2.set_ylabel('生产总值(亿元)')
ax2.set_xticks(values[range(0, 70, 4), 1])
ax2.set_title('2000~2017年季度各行业生产总值散点图')
#######################################################
################ 第2题 ################
#####################################################
pic = plt.figure(dpi=100, figsize=(10, 10))
a_labs = [i[: 4] for i in name[3: 6]] # 定义标签
b_labs = [i[: 2] for i in name[6:]]
explode = [0.01, 0.01, 0.01] # 设定各项离心0.01个半径
explode1 = [0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03]
# 绘制2000年产业结构饼图
pic.add_subplot(2, 2, 1)
plt.pie(np.sum(values[: 4, 3: 6], axis=0), autopct='%1.1f%%',
labels=a_labs, explode=explode) # 绘制饼图
plt.title('2000年产业结构')
# 绘制2016年产业结构饼图
pic.add_subplot(2, 2, 2)
plt.pie(np.sum(values[-2: -6: -1, 3: 6], axis=0), autopct='%1.1f%%',
labels=a_labs, explode=explode)
plt.title('2016年产业结构')
# 绘制2000年行业结构饼图
pic.add_subplot(2, 2, 3)
plt.pie(np.sum(values[: 4, 6:], axis=0), autopct='%1.1f%%',
labels=b_labs, explode=explode1) # 绘制饼图
plt.title('2000年行业结构')
# 绘制2016年行业结构饼图
pic.add_subplot(2, 2, 4)
plt.pie(np.sum(values[-2: -6: -1, 6:], axis=0), autopct='%1.1f%%',
labels=b_labs, explode=explode1)
plt.title('2016年行业结构')
plt.savefig('../tmp/2000、2016结构变化饼图.png')
plt.show()