首页 文章

Pyplot - 正值和负值的条形图

提问于
浏览
6

我希望负条向下,正向上,x轴(0线)正好在它们之间 . 我试过这个

chart = fig.bar(x, negative_data, width=35, color='r')
ax2 = plt.gca().twinx()
ax2.bar(x, positive_data, width=35, color='b')

但相反,我得到了合并的红色和白色条纹,两者都朝下 . 似乎数组negative_data / positive_data仅指定条的高度,但如何指定方向?我需要一些东西来指定每个条形顶部的坐标 .

此外,如何使宽度合理,可能是动态的,因为图形由用户调整大小?

以下是有问题宽度的示例:

x = [250, 1500, 2750, 4250, 6000, 8500, 13200]
negative_data = [0, 0, 0, 0, 0, 0, 0]
positive_data = [3, 0, 0, 0, 1, 0, 0]

我怎样才能让那些看起来很漂亮的情节?

1 回答

  • 19

    您不需要添加双轴,您可以在同一轴上绘制两个条形图,如下所示:

    x = range(7)
    negative_data = [-1,-4,-3,-2,-6,-2,-8]
    positive_data = [4,2,3,1,4,6,7,]
    
    fig = plt.figure()
    ax = plt.subplot(111)
    ax.bar(x, negative_data, width=1, color='r')
    ax.bar(x, positive_data, width=1, color='b')
    

    bar chart with negative an positive y values

    宽度为1的条形将填充轴,并在调整大小时随图形缩放 .

相关问题