matplotlib中堆积图、分块图、气泡图的绘制

本文介绍matplotlib中堆积图、分块图、气泡图的绘制。

堆积图的绘制:

堆积图常用于综合展示不同分类的指标趋势以及它们的总和的趋势。比如说,我们想看一下5名同学期末的总分情况,同时,我们又想看一下这5名同学的各科成绩以及它们各自的占比,这时,我们就可以用堆积图来更高效、更简洁地展示出来。

代码编写:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
ch=[72,80,66,77,92]
math=[62,92,72,75,88]
eng=[76,81,73,75,80]
plt.bar(range(1,6),ch,color='r',label='chineses')
#range(1,6)代表横坐标,ch代表纵坐标,lable代表标签
plt.bar(range(1,6),math,bottom=ch,color='g',label='math')
#bottom代表以...为底,也就是说在...之上
#英语成绩的底部应该是语文+数学之和,所以在这做一个处理
chmath=[ch[i]+math[i] for i in range(5)]
plt.bar(range(1,6),eng,bottom=chmath,color='b',label='english')
plt.show()

结果输出:
堆积图的绘制


分块图的绘制:

分块图可将不同数据集进行并列显示,通常可用于对同一方面的不同主体进行比较(例如用分块图来比较1班,2班,3班的各科平均分情况)。

代码编写:

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
name_list=['语文','数学','英语']
c1=[81.4,83,87.1]
c2=[85.6,87.4,90]
c3=[78,81.2,86.1]
width=0.4
x=[1,3,5]
plt.bar(x,c1,label='class 1',fc='r',width=width)
x=[1.4,3.4,5.4]
plt.bar(x,c2,label='class 2',fc='g',width=width)
x=[1.8,3.8,5.8]
plt.bar(x,c3,label='class 3',fc='b',width=width)
x=[1.4,3.4,5.4]
plt.xticks(x,name_list)
plt.legend() #将每个班级对应的颜色体现在图中
plt.title('班级成绩图')
plt.xlabel('科目')
plt.ylabel('成绩')
plt.show()

结果输出:
分块图的绘制


气泡图的绘制:

气泡图在散点图基础之上,加入了气泡大小的属性。

代码编写:

import matplotlib as mpl
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
x=[22,22,23,24,25,25,26,27,28,29,30,30,32,32,32,33,34,34,35,36,37,38,38,39,40,42,43,43,45,45,46,48,48,48,50,52,56,57,60,62]
y=[176,186,164,177,183,194,180,179,190,170,168,192,173,178,181,186,177,187,180,195,179,186,187,190,182,184,176,178,164,185,181,175,173,172,172,169,168,182,188,174]
z=[70, 220, 50, 170, 210, 270, 150, 150, 360, 150, 150, 200, 150, 170, 170, 160, 180, 460, 480, 480, 490, 300, 300, 250, 300, 250, 350, 180, 100, 250, 160, 170, 160, 180, 150, 150, 130, 180, 100, 160]
plt.scatter(x,y,s=z)
plt.show()

结果输出:
气泡图的绘制


欢迎大家查看作者的主页,主页中还有关于编程与算法方面的更多内容,欢迎大家相互沟通学习~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值