站点图标 AI技术聚合

【Python】Python中使用Matplotlib绘制折线图、散点图、饼形图、柱形图和箱线图

【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年7208536042.516219.119823.4
2001年7279736398.516233.720164.8
2002年732803664015681.920958.1
2003年7373636204.41592721604.6
2004年7426434829.816709.422724.8
2005年7464733441.91776623439.2
2006年7497831940.618894.524142.9
2007年75321307312018624404
2008年7556429923.320553.425087.2
2009年7582828890.521080.225857.3
2010年7610527930.521842.126332.3
2011年76420265942254427282
2012年76704257732324127690
2013年76977241712317029636
2014年77253227902309931364
2015年77451219192269332839
2016年77603214962235033757
2017年77640209442182434872
2018年77586202582139035938
2019年7747119445.221304.536721.3

2、绘图结果

  • 散点图

image-20230415141514764

  • 折线图

  • 饼图

  • 柱形图

  • 箱线图

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

本文仅供学习参考!

文章出处登录后可见!

已经登录?立即刷新
退出移动版