实训1 分析个产业就业人员数据特征间的关系
1、训练要点
(1)掌握散点图的绘制方法。
(2)掌握折线图的绘制方法。
(3)掌握饼图的绘制方法。
(4)掌握柱形图的绘制方法。
(5)掌握箱线图的绘制方法。
2、需求说明
3、实现步骤
(1)使用pandas库读取3个产业就业人员数据。
import pandas as pd
# 读取CSV文件
df = pd.read_csv('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/employee.csv')
# 显示前几行数据,以确保数据已正确读取
# print(df.head())
print(df)
(2)绘制2000--2019年各产业就业人员散点图。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 注意这里是列表格式
plt.rcParams['axes.unicode_minus'] = False
# 读取CSV文件
data = pd.read_csv('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/employee.csv', low_memory=False)
# 提取列名
name = data.columns
# 提取数据值
values = data.values
# 设置画布大小
plt.figure(figsize=(9, 7))
# 绘制散点图
# 假设第一列是年份,第二列、第三列和第四列分别是三个产业的就业人员数
plt.scatter(values[:, 0], values[:, 2], marker='o', c='red', label='第一产业就业人员(万人)')
plt.scatter(values[:, 0], values[:, 3], marker='D', c='blue', label='第二产业就业人员(万人)')
plt.scatter(values[:, 0], values[:, 4], marker='v', c='black', label='第三产业就业人员(万人)')
# 设置图例
plt.legend(loc='best') # 使用loc='best'来自动选择图例的最佳位置
# 添加x轴和y轴标签
plt.xlabel('年份')
plt.ylabel('就业人员数(万人)') # 修改y轴标签,使其更清晰
# 设置x轴刻度
# 注意:range(0, 20) 可能不适用于所有年份,你需要根据实际年份数据来设置
# 如果年份是连续的整数,可以这样做,否则需要按照实际的年份数据来设定
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
# 添加图表标题
plt.title('2000-2019年各产业就业人员散点图')
# 保存图表为图片
plt.savefig('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/2000-2019年各产业就业人员散点图.png')
# 显示图表
plt.show()
(3)绘制2000--2019年各产业就业人员折线图。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 假设employee.csv文件中的数据已经按照年份和其他产业就业人员数排列好
data = pd.read_csv('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/employee.csv', low_memory=False)
# 提取数据值
values = data.values
# 设置画布大小
plt.figure(figsize=(9, 7))
# 绘制第三产业就业人员的折线图
plt.plot(values[:, 0], values[:, 2], color='r', linestyle='--', label='第一产业就业人员(万人)')
plt.plot(values[:, 0], values[:, 3], color='b', linestyle='--', label='第二产业就业人员(万人)')
plt.plot(values[:, 0], values[:, 4], color='y', linestyle='--', label='第三产业就业人员(万人)')
# 添加x轴和y轴标签
plt.xlabel('年份')
plt.ylabel('就业人员(万人)')
# 设置x轴刻度
# 注意:这里的range(0, 20)需要根据实际年份的数量进行调整
# 确保values[range(0, 20), 0]不会超出values数组的范围
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
# 添加图表标题
plt.title('2000-2019年各产业就业人员折线图')
# 添加图例,注意这里的位置应该放在plt.show()之前
plt.legend(loc='best')
# 保存图表为图片
plt.savefig('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/2000-2019年各产业就业人员折线图.png')
# 显示图表
plt.show()
(4)绘制2019年各产业就业人员饼图。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文字体
plt.rcParams['axes.unicode_minus'] = False
data = pd.read_csv('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/employee.csv')
bname = data.columns # 提取其中的columns字段,作为数据标签
values = data.values # 提
label = ['第一产业就业人员(万人)','第二产业就业人员(万人)','第三业就业人员(万人)']
plt.figure(figsize=(6,6))
explode = [0.01,0.01,0.01]
plt.pie(values[-1,2:5],explode=explode,labels=label,autopct='%1.1f%%')
plt.title('2019年各产业就业人员饼图')
plt.savefig('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/2019年各产业就业人员饼图.png')
plt.show()
(5)绘制2019年各产业就业人员柱形图。
label = ['第一产业就业人员(万人)','第二产业就业人员(万人)','第三业就业人员(万人)'] # 添加刻度标签
plt.figure(figsize=(9, 7), dpi=60)
plt.bar(range(3),values[-1, 2:5], width=0.4)
plt.xlabel('年龄段') # 添加x轴标签
plt.ylabel('年末总人口(万人)') # 添加y轴标签
plt.xticks(range(3), label)
plt.title('2019年各产业就业人员柱形图') # 添加图表标题
plt.savefig('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/2019年各产业就业人员柱形图.png')
plt.show()
(6)绘制2000--2019年各产业就业人员年末总人数箱线图。
label = ['第一产业就业人员(万人)','第二产业就业人员(万人)','第三业就业人员(万人)'] # 添加刻度标签
gdp = (list(values[:, 2]), list(values[:, 3]), list(values[:, 4]))
plt.figure(figsize=(7, 6))
plt.boxplot(gdp, notch=True, labels=label, meanline=True, showmeans=True) # 加入showmeans=True,对比数据源看效果
plt.title('2019年各产业就业人员箱线图') # 添加图表标题
plt.savefig('C:/各章PPT课件及数据源-Python数据可视化实战/2-各章实训数据源/第3章/data/2019年各产业就业人员箱线图.png')
plt.show()