条形图

阅读: 2959     评论:0

条形图,也称柱状图,看起来像直方图,但完是两码事。条形图根据不同的x值,为每个x指定一个高度y,画一个一定宽度的条形;而直方图是对数据集进行区间划分,为每个区间画条形。

n = 12   # 12组数据
X = np.arange(n)
Y1 = (1 - X / n) * np.random.uniform(0.5, 1.0, n)  # 生成对应的y轴数据
Y2 = (1 - X / n) * np.random.uniform(0.5, 1.0, n)
plt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')  # +号让所有y值变成正数
plt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white') # 负号让所有y值变成复数
# 加上数值
for x, y in zip(X, Y1):  # 显示文本
    plt.text(x, y + 0.05, '%.2f' % y, ha='center', va='bottom')

for x, y in zip(X, Y2):
    plt.text(x, -y - 0.05, '-%.2f' % y, ha='center', va='top')

plt.xlim(-0.5, n)
plt.ylim(-1.25, 1.25)

img

将上面的代码稍微修改一下,就可以得到下面的图形:

plt.bar(X, Y1, width=0.4, facecolor='lightskyblue', edgecolor='white')
plt.bar(X+0.4, Y2, width=0.4, facecolor='yellowgreen', edgecolor='white')

for x,y in zip(X,Y1):
    plt.text(x, y+0.05, '%.2f' % y, ha='center', va= 'bottom')

for x,y in zip(X,Y2):
    plt.text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')

plt.xlim(-0.5,6)
plt.ylim(0,1.25)

img

更多内容参考:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html


 直方图 饼图 

评论总数: 0


点击登录后方可评论