- 新增 aqi.csv 文件,包含 2020 年 1 月 1 日至 9 月 27 日的空气质量数据- 数据包括日期、AQI、质量等级以及 PM2.5、PM10、SO2、CO、NO2、O3等污染物含量
200 lines
6.4 KiB
Python
200 lines
6.4 KiB
Python
# 代码5-1
|
||
import numpy as np
|
||
import matplotlib.pyplot as plt
|
||
import warnings
|
||
# 忽略所有警告
|
||
warnings.filterwarnings("ignore")
|
||
# %matplotlib inline表示在行中显示图片,在命令行运行报错
|
||
data = np.arange(0, 1.1, 0.01)
|
||
plt.title('lines') # 添加标题
|
||
plt.xlabel('x') # 添加x轴的名称
|
||
plt.ylabel('y') # 添加y轴的名称
|
||
plt.xlim((0, 1)) # 确定x轴范围
|
||
plt.ylim((0, 1)) # 确定y轴范围
|
||
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 规定x轴刻度
|
||
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 确定y轴刻度
|
||
plt.plot(data, data ** 2) # 添加y=x^2曲线
|
||
plt.plot(data, data ** 4) # 添加y=x^4曲线
|
||
plt.legend(['y=x^2', 'y=x^4'])
|
||
plt.savefig('../tmp/y=x^2.jpg')
|
||
plt.show()
|
||
|
||
|
||
# 代码5-2
|
||
x = np.arange(0, np.pi * 2, 0.01)
|
||
# 第一幅子图
|
||
p1 = plt.figure(figsize=(8, 6), dpi=80) # 确定画布大小
|
||
# 创建一个2行1列的子图,并开始绘制第一幅
|
||
ax1 = p1.add_subplot(2, 1, 1)
|
||
plt.title('lines') # 添加标题
|
||
plt.xlabel('x') # 添加x轴的名称
|
||
plt.ylabel('y') # 添加y轴的名称
|
||
plt.xlim((0, 1)) # 确定x轴范围
|
||
plt.ylim((0, 1)) # 确定y轴范围
|
||
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 规定x轴刻度
|
||
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1]) # 确定y轴刻度
|
||
plt.plot(x, x ** 2) # 添加y=x^2曲线
|
||
plt.plot(x, x ** 4) # 添加y=x^4曲线
|
||
plt.legend(['y=x^2', 'y=x^4'])
|
||
# 第二幅子图
|
||
ax2 = p1.add_subplot(2, 1, 2) # 开始绘制第二幅
|
||
plt.title('sin/cos(x)') # 添加标题
|
||
plt.xlabel('x') # 添加x轴的名称
|
||
plt.ylabel('y') # 添加y轴的名称
|
||
plt.xlim((0, np.pi * 2)) # 确定x轴范围
|
||
plt.ylim((-1, 1)) # 确定y轴范围
|
||
plt.xticks([0, np.pi / 2, np.pi, np.pi * 1.5, np.pi * 2]) # 规定x轴刻度
|
||
plt.yticks([-1, -0.5, 0, 0.5, 1]) # 确定y轴刻度
|
||
plt.plot(x, np.sin(x)) # 添加sin(x)曲线
|
||
plt.plot(x, np.cos(x)) # 添加cos(x)曲线
|
||
plt.legend(['y=sin(x)', 'y=cos(x)'])
|
||
plt.tight_layout() # 调整两个子图间距
|
||
plt.savefig('../tmp/sincos(x).jpg')
|
||
plt.show()
|
||
|
||
|
||
# 代码5-3
|
||
# 原图
|
||
x = np.linspace(0, 4 * np.pi) # 生成x轴数据
|
||
y = np.sin(x) # 生成y轴数据
|
||
plt.plot(x, y, label='$sin(x)$') # 绘制sin曲线图
|
||
plt.title('sin(x)')
|
||
plt.xlabel('x')
|
||
plt.ylabel('y')
|
||
plt.show()
|
||
|
||
# 修改rc参数后的图
|
||
plt.rcParams['lines.linestyle'] = '-.'
|
||
plt.rcParams['lines.linewidth'] = 3
|
||
plt.plot(x, y, label='$sin(x)$') # 绘制三角函数
|
||
plt.title('sin(x)')
|
||
plt.xlabel('x')
|
||
plt.ylabel('y')
|
||
plt.show()
|
||
|
||
|
||
# 代码5-4
|
||
# 无法显示中文标题
|
||
plt.plot(x, y, label='$sin(x)$') # 绘制三角函数
|
||
plt.title('sin(x)曲线')
|
||
plt.xlabel('x')
|
||
plt.ylabel('y')
|
||
plt.show()
|
||
|
||
# 设置rc参数显示中文标题
|
||
# 设置字体为SimHei显示中文
|
||
plt.rcParams['font.sans-serif'] = 'SimHei'
|
||
plt.rcParams['axes.unicode_minus'] = False # 设置正常显示符号
|
||
plt.plot(x, y, label='$sin(x)$') # 绘制三角函数
|
||
plt.title('sin(x)曲线')
|
||
plt.xlabel('x')
|
||
plt.ylabel('y')
|
||
plt.show()
|
||
|
||
|
||
# 代码5-5
|
||
import numpy as np
|
||
import matplotlib.pyplot as plt
|
||
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文显示
|
||
plt.rcParams['axes.unicode_minus'] = False
|
||
data = np.load('../data/2001-2019年劳动力与就业人员数据.npz',
|
||
encoding='ASCII', allow_pickle=True)
|
||
columns = data['arr_0'] # 提取其中的columns数组,视为数据的标签
|
||
values = data['arr_1'] # 提取其中的values数组,视为数据的存在位置
|
||
plt.figure(figsize=(12, 6), dpi=1080) # 设置画布
|
||
plt.scatter(values[:, 0], values[:, 1], marker='o') # 绘制散点图
|
||
plt.xlabel('年份(年)')
|
||
plt.ylabel('劳动力人数(万人)')
|
||
plt.ylim(70000, 85000) # 设置y轴范围
|
||
plt.xticks(range(2001, 2020, 1), labels=values[:, 0])
|
||
plt.title('2001~2019年劳动力人数散点图') # 添加图表标题
|
||
plt.show()
|
||
|
||
|
||
# 代码5-6
|
||
p = plt.figure(figsize=(12, 6), dpi=1080) # 设置画布
|
||
# 绘制散点图1
|
||
plt.scatter(values[:, 0], values[:, 3], marker='o', c='b')
|
||
# 绘制散点图2
|
||
plt.scatter(values[:, 0], values[:, 4], marker='o', c='r')
|
||
plt.xlabel('年份(年)')
|
||
plt.ylabel('人数(万人)')
|
||
plt.ylim(20000, 60000) # 设置y轴范围
|
||
plt.xticks(range(2001, 2020, 1), labels=values[:, 0])
|
||
plt.legend(['城镇就业人员', '乡村就业人员']) # 设置图例
|
||
plt.title('2001~2019年城乡就业人数散点图') # 添加图表标题
|
||
plt.show()
|
||
|
||
|
||
|
||
# 代码5-7
|
||
p = plt.figure(figsize=(12, 6), dpi=1080) #设置画布
|
||
plt.plot(values[:, 0], values[:, 2], color='r', linestyle='-')
|
||
plt.xlabel('年份(年)')
|
||
plt.ylabel('人数(万人)')
|
||
plt.ylim(70000, 80000) # 设置y轴范围
|
||
plt.xticks(range(2001, 2020, 1), labels=values[:, 0])
|
||
plt.title('2001~2019年就业人数折线图')
|
||
plt.show()
|
||
|
||
|
||
# 代码5-8
|
||
p = plt.figure(figsize=(12, 6), dpi=1080) #设置画布
|
||
plt.plot(values[:, 0], values[:, 2], c='b', linestyle = '-',
|
||
marker = 'o') # 绘制点线图
|
||
plt.xlabel('年份(年)')
|
||
plt.ylabel('人数(万人)')
|
||
plt.ylim(70000, 80000) # 设置y轴范围
|
||
plt.xticks(range(2001, 2020, 1), labels=values[:, 0])
|
||
plt.title('2001~2019年就业人数点线图')
|
||
plt.show()
|
||
|
||
|
||
|
||
# 代码5-9
|
||
p = plt.figure(figsize=(12, 6), dpi=1080) #设置画布
|
||
plt.plot(values[:, 0], values[:, 3], 'bs-',
|
||
values[:, 0], values[:, 4], 'ro-.')
|
||
plt.xlabel('年份(年)')
|
||
plt.ylabel('人数(万人)')
|
||
plt.ylim(20000, 60000) # 设置y轴范围
|
||
plt.xticks(range(2001, 2020, 1), labels=values[:, 0])
|
||
plt.legend(['城镇就业人员', '乡村就业人员'])
|
||
plt.title('2001~2019年城乡就业人数点线图')
|
||
plt.show()
|
||
|
||
|
||
# 代码5-10
|
||
columns = data['arr_0'] # 提取其中的columns数组,视为数据的标签
|
||
values = data['arr_1'] # 提取其中的values数组,视为数据的存在位置
|
||
# 绘制柱形图
|
||
labels = ['城镇就业人员', '乡村就业人员']
|
||
p = plt.figure(figsize=(6, 6), dpi=1080)
|
||
plt.bar(range(2), values[-1, 3:5], width=0.5)
|
||
plt.xlabel('类别')
|
||
plt.ylabel('就业人数(万人)')
|
||
plt.xticks(range(2), labels)
|
||
plt.title('2019年城乡就业人数柱形图')
|
||
plt.show()
|
||
|
||
|
||
|
||
# 代码5-11
|
||
label = ['城镇就业人员', '乡村就业人员']
|
||
explode = [0.01, 0.01] # 设定各项距离圆心n个半径
|
||
p = plt.figure(figsize=(6, 6), dpi=1080) # 设置画布
|
||
plt.pie(values[-1, 3:5], explode=explode,
|
||
labels=label, autopct='%1.1f%%')
|
||
plt.title('2019年城乡就业人数分布饼图')
|
||
plt.show()
|
||
|
||
|
||
|
||
# 代码5-12
|
||
label= ['城镇就业人员', '乡村就业人员']
|
||
gdp = (list(values[:, 3]),list(values[:, 4]))
|
||
p = plt.figure(figsize=(6, 6), dpi=1080)
|
||
plt.boxplot(gdp, notch=True, labels=label, meanline=True)
|
||
plt.title('2001~2019年城乡就业人数分布箱线图')
|
||
plt.show()
|