WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

matplotlib绘制柱状图

1.柱状图的绘制

柱状图是一种用矩形柱来表示数据分类的图表。 柱状图可以垂直绘制,也可以水平绘制。 它的高度与其所表示的数值成正比关系。 柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值 matplotlib.pyplot.bar(x, height, width: float = 0.8, bottom = None, *, align: str = ‘center’, data = None, **kwargs) x 表示x坐标,数据类型为float类型,一般为np.arange()生成的固定步长列表 height 表示柱状图的高度,也就是y坐标值,数据类型为float类型,一般为一个列表,包含生成柱状图的所有y值 width 表示柱状图的宽度,取值在0~1之间,默认值为0.8 bottom 柱状图的起始位置,也就是y轴的起始坐标,默认值为None align 柱状图的中心位置,“center”,"lege"边缘,默认值为’center’ color 柱状图颜色,默认为蓝色 alpha 透明度,取值在0~1之间,默认值为1 label 标签,设置后需要调用plt.legend()生成 edgecolor 边框颜色 (ec) linewidth 边框宽度,浮点数或类数组,默认为None (lw) tick_label:柱子的刻度标签,字符串或字符串列表,默认值为None。 linestyle :线条样式 (ls)

 

 1.1 bottom参数 柱状图的起始位置,也就是y轴的起始坐标,默认值为None

 

 1.2 color参数 设置柱状图的柱状颜色

描边 -相关的关键字参数为: edgecolor 或 ec linestyle 或 ls linewidth 或 lw

 

 2.同位置多柱状图

同一 x 轴位置绘制多个柱状图,主要通过调整柱状图的宽度和每个柱状图x轴的 起始位置

 

 

 

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 国家
countries = ['挪威', '德国', '中国', '美国', '瑞典']
 
# 金牌个数
gold_medal = [16, 12, 9, 8, 8]
# 银牌个数
silver_medal = [8, 10, 4, 10, 5]
# 铜牌个数
bronze_medal = [13, 5, 2, 7, 5]
 
#1.将x轴转换成数值
x = np.arange(len(countries))
 
# 2.设置图形的宽度
width = 0.2
 
# ===============确定x起始位置==========
# 金牌起始位置
gold_x = x
 
# 银牌的起始位置
silver_x = x + width
 
# 铜牌的起始位置
bronze_x = x + 2 * width
 
     
# ==================分别绘制图形
# 金牌图形
plt.bar(gold_x,gold_medal,width=width,color="gold",label='金牌')
 
# 银牌图形
plt.bar(silver_x,silver_medal,width=width,color="silver",label='银牌')
 
# 铜牌图形
plt.bar(bronze_x,bronze_medal,width=width, color="saddlebrown",label='铜牌')
 
# ================将x轴的坐标变回来
 
# 注意x标签的位置未居中
plt.xticks(x+width, labels=countries)
 
# verticalalignment:(va)垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
# horizontalalignment:(ha)水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
#-----------显示高度文本----------------
for i in range(len(countries)):
    # 金牌的文本设置
    plt.text(gold_x[i],gold_medal[i],gold_medal[i],va="bottom",ha="center")
    # 银牌牌
    plt.text(silver_x[i],silver_medal[i],silver_medal[i],va="bottom",ha="center")
    # 铜牌
    plt.text(bronze_x[i],bronze_medal[i],bronze_medal[i],va="bottom",ha="center")
 
# 显示图例
plt.legend()
plt.show()

 

 

 

 


__EOF__

本文作者Ambitious
本文链接https://www.cnblogs.com/ambitiousPlus/p/16224896.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Ambitious~  阅读(767)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示