前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matplotlib 柱状图/条形图

matplotlib 柱状图/条形图

作者头像
用户6021899
发布2019-08-14 16:17:16
1.9K0
发布2019-08-14 16:17:16
举报
文章被收录于专栏:Python编程 pyqt matplotlib

本篇介绍matplotlib中柱状图/条形图的用法。

bar()函数用来绘制柱状图(垂向的),barh()函数用来绘制条形图(水平的)。

我们先绘制一个最简单的柱状图:

代码语言:javascript
复制
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()

我们再多设置一些参数:

代码语言:javascript
复制
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)添加误差:

代码语言:javascript
复制
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():

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档