【问题标题】:Matplotlib bar plot width only changing width of last barMatplotlib 条形图宽度仅改变最后一个条形的宽度
【发布时间】:2014-03-07 23:57:10
【问题描述】:

我有这个条形图,改变宽度值只是改变最后一个条的宽度。我附上了图片和代码。有人知道为什么吗?

indexes = np.arange(len(labels))
width = 2
pdb.set_trace()
plt.bar(indexes, values, width=2, color="blueviolet")
plt.xlabel("Phenotype identifier", fontdict=font)

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    因为您的条形图彼此重叠,并且您的数据恰好单调增加,请看,如果您(假设 indexes=range(10)):

    plt.bar(indexes, range(10)[::-1], width=2, color="blueviolet")  #indexes should be indices
    

    你会得到:

    【讨论】:

    • 哦,好吧...好收获!我不希望他们有这种想法哈哈。我该如何解决?
    • @jcam77 - 您将左角位置定义为严格分开 1 个单位。只需indexes = np.arange(0, 2*len(labels), 2)
    • 谢谢@JoeKington。我添加了,但它们的宽度仍然相同。