Graph Pyplot-正负值条形图

Graph Pyplot-正负值条形图,graph,matplotlib,charts,plot,Graph,Matplotlib,Charts,Plot,我希望负条朝下,正条朝上,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') 但相反,我得到了红色和白色的合并条,都朝下。数组负/正数据似乎只指定了条的高度,但如何指定方向?我需要一些东西来指定每个条顶部的坐标 此外,如何使宽度合理,可能是动态的,因为图形

我希望负条朝下,正条朝上,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')
但相反,我得到了红色和白色的合并条,都朝下。数组负/正数据似乎只指定了条的高度,但如何指定方向?我需要一些东西来指定每个条顶部的坐标

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

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

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]

如何使这些条形图的绘图看起来更漂亮?

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

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')


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

酷,工作!你知道我对宽度做了什么吗?你想让宽度看起来像什么?要么是钢筋相互接触,要么是它们之间有一个很小的间隙。现在我得到了非常细的垂直线。它们看起来也是黑色的,可能是因为它们太薄了,我看不见颜色。谢谢这听起来像是图形中显示的条形太多了。您可能需要不同类型的绘图或更大的图形。但它只显示了几个条形,它们都是垂直线。我有7个酒吧每一块。