随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

matplotlib绘制单个、多个、堆积、双向柱形图

总结,主要是bar以及barh的用法,画堆叠图时还得注意一下数据类型,是否都是可加(数值型还是字符型,又或者是list等),如果不是,就是要np.array转化,还有竖图和横图间隔的设置,width和height,最后,数据都是最后的结果,数据值个数不能太多,一般不超过10个,如果是连续性数据,请先处理,然后再画图

一、单个柱形图

#构造数据
import pandas as pd 
import numpy as np
sabf = (27,53,81,103,138)
sa = (29,57,89,113,141)
ffd = (30,63,94,119,152)
index = np.arange(5)
import matplotlib.pyplot as plt

单个直方图

plt.bar(index,sabf,width=0.5,color='green')

 

 横向直方图

plt.barh(index,sabf,color='green',height=0.5)

 

 记住,bar用width宽,barh用height

二、多个柱形图

主要在于x坐标的增加,设置好x坐标,其他都好办

bar_width=0.2
plt.bar(index,sabf,color='green',width=bar_width)
plt.bar(index+bar_width,sa,color='blue',width=bar_width)
plt.bar(index+bar_width+bar_width,ffd,color='yellow',width=bar_width)
plt.legend(('sabf','sa','ffd'))
plt.xticks(index + 3 * bar_width / 3,('100', '200', '300', '400', '500'))

 

 

三、堆积柱形图

主要重点在于bottom参数的设置

plt.bar(index,sabf,color='green',bottom=0)
plt.bar(index,sa,color='blue',bottom=sabf)
plt.bar(index,ffd,color='yellow',bottom=np.array(sabf)+np.array(sa))  #要注意这个是否可以广播,也即是说是否可加(数学上的可加),不然会报错
plt.legend(('sabf','sa','ffd'))
plt.xticks(index,('100', '200', '300', '400', '500'))

 

 

四、双向柱形图

主要在于barh的使用,以及例外一个要乘(-1)

plt.barh(index,sabf,color='green',height=0.5)
plt.barh(index,-np.array(sa),color='yellow',height=0.5)
plt.legend(('sabf','sa'))

 

posted on   小小喽啰  阅读(4752)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示