【Python】使用Matplotlib绘制折线图、散点图、饼形图、柱形图和箱线图
python数据可视化课程,实验二
Matplotlib 中文API:API 概览 | Matplotlib
一、实验任务的数据背景
提供的源数据(数据文件employee.csv)共拥有4个特征,分别为就业人员、第一产业就业人员、第二产业就业人员、第三产业就业人员。根据3个产业就业人员的数量绘制散点图和折线图。根据各个特征随着时间推移发生的变化情况,可以分析出未来3个产业就业人员的变化趋势。绘制3个产业就业人员数据的饼图、柱形图和箱线图。通过柱形图可以对比分析各产业就业人员数量,通过饼图可以发现各产业就业人员的变化,绘制每个特征的箱线图则可以发现不同特征增长或减少的速率变化。
二、实验任务和要求
1)使用pandas库读取3个产业就业人员数据。
2)绘制2000—2019年各产业就业人员散点图。
3)绘制2000-—2019年各产业就业人员折线图。
4)绘制2019年各产业就业人员饼图。
5)绘制2019年各产业就业人员柱形图。
6)绘制2000—2019年各产业就业人员年末总人数箱线图。
三、绘图结果与程序代码
1、employee.csv文件
指标 | 就业人员(万人) | 第一产业就业人员(万人) | 第二产业就业人员(万人) | 第三产业就业人员(万人) |
---|---|---|---|---|
2000年 | 72085 | 36042.5 | 16219.1 | 19823.4 |
2001年 | 72797 | 36398.5 | 16233.7 | 20164.8 |
2002年 | 73280 | 36640 | 15681.9 | 20958.1 |
2003年 | 73736 | 36204.4 | 15927 | 21604.6 |
2004年 | 74264 | 34829.8 | 16709.4 | 22724.8 |
2005年 | 74647 | 33441.9 | 17766 | 23439.2 |
2006年 | 74978 | 31940.6 | 18894.5 | 24142.9 |
2007年 | 75321 | 30731 | 20186 | 24404 |
2008年 | 75564 | 29923.3 | 20553.4 | 25087.2 |
2009年 | 75828 | 28890.5 | 21080.2 | 25857.3 |
2010年 | 76105 | 27930.5 | 21842.1 | 26332.3 |
2011年 | 76420 | 26594 | 22544 | 27282 |
2012年 | 76704 | 25773 | 23241 | 27690 |
2013年 | 76977 | 24171 | 23170 | 29636 |
2014年 | 77253 | 22790 | 23099 | 31364 |
2015年 | 77451 | 21919 | 22693 | 32839 |
2016年 | 77603 | 21496 | 22350 | 33757 |
2017年 | 77640 | 20944 | 21824 | 34872 |
2018年 | 77586 | 20258 | 21390 | 35938 |
2019年 | 77471 | 19445.2 | 21304.5 | 36721.3 |
2、绘图结果
- 散点图
- 折线图
- 饼图
- 柱形图
- 箱线图
3、代码
import pandas as pd
import matplotlib.pyplot as plt
# 何壮壮 20302211009
# 读取数据
data = pd.read_csv('employee.csv', encoding='utf-8')
# 绘制2000-2019个产业就业人员散点图
# 解决标签中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 调整画布尺寸
plt.figure(figsize=(12, 5))
# 第一产业就业人员(万人)
plt.scatter(data[data.columns[0]], data[data.columns[2]], color='red', label='第一产业')
# 第二产业就业人员(万人)
plt.scatter(data[data.columns[0]], data[data.columns[3]], color='blue', label='第二产业')
# # 第三产业就业人员(万人)
plt.scatter(data[data.columns[0]], data[data.columns[4]], color='black', label='第三产业')
# 设置x轴标签
plt.xlabel('年份')
# 设置y轴标签
plt.ylabel('就业人数(百万)')
# 显示图例
plt.legend()
plt.title('2000-2019个产业就业人员散点图')
# 显示散点图
plt.show()
# 绘制2000-2019个产业就业人员折线图
# 调整画布尺寸
plt.figure(figsize=(12, 5))
# 第一产业就业人员(万人)
plt.plot(data[data.columns[0]], data[data.columns[2]], color='r', label='第一产业')
# 第二产业就业人员(万人)
plt.plot(data[data.columns[0]], data[data.columns[3]], color='b', label='第二产业')
# 第三产业就业人员(万人)
plt.plot(data[data.columns[0]], data[data.columns[4]], color='k', label='第三产业')
# 设置x轴标签
plt.xlabel('年份')
# 设置y轴标签
plt.ylabel('就业人数(百万)')
# 显示图例
plt.legend()
# 显示标题
plt.title('2000-2019个产业就业人员折线图')
# 显示折线图
plt.show()
# 绘制2019年个产业就业人员饼图
# [-1][2:] 表示最后一行数据(即2019年)的第一、二、三产业数据
plt.pie(data.values[-1][2:], labels=['第一产业', '第二产业', '第三产业'], autopct="%1.1f%%", startangle=90)
# 显示标题
plt.title('2019年各产业就业人员饼图')
# 显示饼图
plt.show()
# 绘制2019年个产业就业人员柱形图
# 调整画布尺寸
plt.figure(figsize=(12, 5))
# [-1][2:] 表示最后一行数据(即2019年)的第一、二、三产业数据
plt.bar(data.columns[2:], data.values[-1][2:])
# 在柱子顶部显示数值
for a, b in zip(data.columns[2:], data.values[-1][2:]):
plt.text(a, b, b)
# 显示标题
plt.title('2019年各产业就业人员柱形图')
# 显示饼图
plt.show()
# 绘制2000—2019年各产业就业人员年末总人数箱线图
plt.boxplot([data[data.columns[2]], data[data.columns[3]], data[data.columns[4]]], labels=data.columns[2:])
# 显示标题
plt.title("2000—2019年各产业就业人员年末总人数箱线图")
# 显示图表
plt.show()
本文仅供学习参考!
文章出处登录后可见!
已经登录?立即刷新