【问题标题】:Change the width of the Basic Bar Chart更改基本条形图的宽度
【发布时间】:2016-08-29 15:42:21
【问题描述】:

我用 matplotlib 创建了一个条形图:

import matplotlib.pyplot as plt; plt.rcdefaults()
import numpy as np
import matplotlib.pyplot as plt

objects = ('ETA_PRG_P2REF_RM', 'ETA_PRG_VDES_RM', 'ETA_PRG_P3REF_RM', 'Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')
y_pos = np.arange(len(objects))
performance = [220010, 234690, 235100, 21220, 83410, 119770, 210990, 190430, 888994]
plt.bar(y_pos, performance, align='center', alpha=0.5)
plt.xticks(y_pos, objects)
plt.ylabel('Usage')
plt.title('Programming language usage')
plt.show() 

看附件图片

但是,您可以注意到绘图的宽度很小,对象的名称不清楚。 你能建议我如何解决这个问题吗?

谢谢

【问题讨论】:

  • 您会考虑轮换标签吗?
  • 好的,为什么不呢,我该怎么做呢?谢谢
  • 您介意将performance = ... 行替换为我可以用来运行您的代码的示例数组吗?只需一堆随机数就可以了。
  • 性能 = [220010, 234690, 235100, 21220, 83410, 119770 210990, 190430, 888994]
  • 我已经更新了您的问题,因此看到它的人可以通过复制和粘贴来运行它,这就是您的目标。

标签: python matplotlib bar-chart


【解决方案1】:

您可以添加带有旋转的刻度标签:

pyplot.xticks(y_pos, objects, rotation=70)

除了以度为单位的角度之外,您还可以指定一个字符串:

pyplot.xticks(y_pos, objects, rotation='vertical')

您可能还想指定水平对齐方式,尤其是使用像 40 度这样的角度。默认是使用中心,这会使标签看起来很奇怪:

pyplot.xticks(y_pos, objects, rotation=40, ha='right')

请参阅docs 了解完整的选项列表。

【讨论】:

  • @CyrineEzzahra。没问题。我做了一个小更新,可能会对你有所帮助。