Matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。
我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据。
1 常见图形种类及意义
- 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)【变化情况】
api:plt.plot(x, y)
文章图片
- 散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。
特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)【分布规律】
api:plt.scatter(x, y)
文章图片
- 柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中。
特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)【统计/对比】
api:plt.bar(x, width, align='center', **kwargs)【x代表维度的值】
Parameters:
x : 需要传递的数据width : 柱状图的宽度align : 每个柱状图的位置对齐方式
{‘center’, ‘edge’}, optional, default: ‘center’**kwargs :
color:选择柱状图的颜色
文章图片
文章图片
- 直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。
特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)【正态分布】
api:matplotlib.pyplot.hist(x, bins=None)
Parameters: x : 需要传递的数据 bins : 组距
文章图片
- 饼图:用于表示不同分类的占比情况,通过弧度大小来对比各种分类。
特点:分类数据的占比情况(占比)【占比】
api:plt.pie(x, labels=,autopct=,colors)
Parameters: x:数量,自动算百分比 labels:每部分名称 autopct:占比显示指定%1.2f%% colors:每部分颜色
文章图片
饼状图示例代码:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签labels = ['娱乐','育儿','饮食','房贷','交通','其它']
sizes = [2,5,12,70,2,9]
explode = (0,0,0,0.1,0,0)
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
plt.title("饼图示例-8月份家庭支出")
plt.show()
文章图片
2 散点图绘制 需求:探究房屋面积和房屋价格的关系
房屋面积数据:
x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,20.67, 288.64,
163.56, 120.06, 207.83, 342.75, 147.9 ,53.06, 224.72,29.51,
21.61, 483.21, 245.25, 399.25, 343.35]
房屋价格数据:
y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,24.9 , 239.34,
140.32, 104.15, 176.84, 288.23, 128.79,49.64, 191.74,33.1 ,
30.74, 400.02, 205.35, 330.64, 283.45]
示例代码:
# 0.准备数据
x = [225.98, 247.07, 253.14, 457.85, 241.58, 301.01,20.67, 288.64,
163.56, 120.06, 207.83, 342.75, 147.9 ,53.06, 224.72,29.51,
21.61, 483.21, 245.25, 399.25, 343.35]
y = [196.63, 203.88, 210.75, 372.74, 202.41, 247.61,24.9 , 239.34,
140.32, 104.15, 176.84, 288.23, 128.79,49.64, 191.74,33.1 ,
30.74, 400.02, 205.35, 330.64, 283.45]# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)# 2.绘制散点图
plt.scatter(x, y)# 3.显示图像
plt.show()
文章图片
3 柱状图绘制 需求-对比每部电影的票房收入
电影数据如下图所示:
文章图片
- 准备数据
['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴', '降魔传','追捕','七十七天','密战','狂兽','其它']
[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]
- 绘制柱状图
# 0.准备数据
# 电影名字
movie_name = ['雷神3:诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴','降魔传','追捕','七十七天','密战','狂兽','其它']
# 横坐标
x = range(len(movie_name))
# 票房数据
y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]# 1.创建画布
plt.figure(figsize=(20, 8), dpi=100)# 2.绘制柱状图
plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','b'])# 2.1b修改x轴的刻度显示
plt.xticks(x, movie_name)# 2.2 添加网格显示
plt.grid(linestyle="--", alpha=0.5)# 2.3 添加标题
plt.title("电影票房收入对比")# 3.显示图像
plt.show()
文章图片
文章图片
参考链接:
? Matplotlib — Visualization with Python
4 小结
- 折线图
- 能够显示数据的变化趋势,反映事物的变化情况。(变化)
- plt.plot()
- 散点图
- 判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
- plt.scatter()
- 柱状图
- 绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
- plt.bar(x, width, align="center")
- 直方图
- 绘制连续性的数据展示一组或者多组数据的分布状况(统计)
- plt.hist(x, bins)
- 饼图
- 用于表示不同分类的占比情况,通过弧度大小来对比各种分类
- plt.pie(x, labels, autopct, colors)
推荐阅读
- ShowMeAI资讯日报|人工智能 | ShowMeAI资讯日报 #2022.06.18
- ShowMeAI资讯日报|人工智能 | ShowMeAI资讯日报 #2022.06.20
- ShowMeAI资讯日报|人工智能 | ShowMeAI资讯日报 #2022.06.16
- ShowMeAI资讯日报|人工智能 | ShowMeAI资讯日报 #2022.06.17
- ShowMeAI资讯日报|人工智能 | ShowMeAI资讯日报 #2022.06.14
- 智能优化算法|智能优化算法(蜻蜓优化算法-附代码)
- 机器视觉|机器视觉(二)硬件nvidia jetson AGX
- 【机器翻译】|机器翻译质量评测算法-BLEU
- 数据挖掘|知乎高赞(有哪些你看了以后大呼过瘾的数据分析书())