本篇介绍matplotlib中柱状图/条形图的用法。
bar()函数用来绘制柱状图(垂向的),barh()函数用来绘制条形图(水平的)。
我们先绘制一个最简单的柱状图:
import matplotlib.pyplot as plt
import numpy as np
X= np.arange(0,16,2)#X决定了各个bar在X轴的位置
height= [3,1,4,1,5,9,2,6]#height决定了各个bar的高度
plt.bar(X,height)#X,height为必须参数
plt.show()
我们再多设置一些参数:
import matplotlib.pyplot as plt
import numpy as np
X= np.arange(0,16,2)
height= [3,1,4,1,5,9,2,6]
width= np.array([0.5,0.5,0.5,0.5,0.8,0.8,0.8,0.8])
plt.bar(X,height,width, align ="edge", color ="r",edgecolor="k",linewidth=2,
tick_label=["A","B","C","D","E","F","G","H"])
其中,
width 表示bar的宽度,可以是标量(默认0.8),或者是和height同长度的数组。
algin 表示bar的对齐,默认居中对齐;为“edge”时,若对应width为正数表示左对齐,负数表示右对齐。
color和 edgecolor分布表示bar中间区域和边缘的颜色,后者默认和前者一致。
linewidth 表示 bar 的边缘线宽。当然,在edgecolor不为None是才有意义。
color,edgecolor 和 linewidth 可以使标量,也可以是和height同长度的数组
tick_label 表示轴上的标签,默认是由X决定的数字标签。
还可以给数据(height)添加误差:
import matplotlib.pyplot as plt
import numpy as np
X= np.arange(0,16,2)
height= [3,1,4,1,5,9,2,6]
width= np.array([0.5,0.5,0.5,0.5,0.8,0.8,0.8,0.8])
yerr = [[0.2,0.5,0.5,0.5,0.4,0.5,0.1,0.5],[0.6,0.5,0.5,0.5,0.4,0.5,0.8,0.5]]
plt.bar(X,height,width, align ="edge", color ="r",edgecolor="k",linewidth=1,
tick_label=["A","B","C","D","E","F","G","H"],yerr =yerr,ecolor="b",capsize=6)
plt.title("柱状图示例",fontproperties="SimHei",fontsize = 18)
plt.xlabel("x label")
plt.ylabel("y label")
plt.show()
yerr 表示数据的误差,可以是标量,可以是长度为N的数组(上下偏差对称),也可以是2*N的数组(N为height的长度)。
ecolor 为误差符号的颜色。默认为黑。
capsize 为误差符号两端帽子的尺寸(像素)。默认不带cap。
水平的条形图的用法完全类似,只需对应的x改为y,函数用barh():
import matplotlib.pyplot as plt
import numpy as np
Y= np.arange(0,16,2)
height= [3,1,4,1,5,9,2,6]
width= np.array([0.5,0.5,0.5,0.5,0.8,0.8,0.8,0.8])
xerr = [[0.2,0.5,0.5,0.5,0.4,0.5,0.1,0.5],[0.6,0.5,0.5,0.5,0.4,0.5,0.8,0.5]]
help(plt.bar)
plt.barh(Y,height,width, align ="edge", color ="g",edgecolor="k",linewidth=1,
tick_label=["A","B","C","D","E","F","G","H"],xerr =xerr,ecolor="b",capsize=6)
plt.title("条形图示例",fontproperties="SimHei",fontsize = 18)
plt.xlabel("x label")
plt.ylabel("y label")
plt.show()
本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有