在Matplotlib中操作x轴刻度标签

6
我注意到当我的条形图中只有5个或更少的数据时,x轴会自动添加额外的刻度线: enter image description here 我想要的是像这样的效果:

enter image description here

有没有办法让matplotlib强制为第一个图生成每个条形的一个刻度标签?

看起来你在OSX上发现了Matplotlib的Unicode错误问题1737和http://stackoverflow.com/questions/15524662/matplotlib-mac-osx-10-8-cuts-off-tick-and-axes-labels。 - tacaswell
4
如果您能展示用于生成这两个图表的代码,那会非常有帮助。我们可以猜测您是如何做的以及出了什么问题,但如果我们能直接看到您正在做什么,然后直接解决它,您将得到更多、更快、更好的答案。请展示您使用的代码,这对我们非常有帮助。 - tacaswell
1个回答

20

bar方法接受一个名为align的参数。将此参数设置为align='center'align参数将条形图对齐到我们给定的x值中心,而不是左侧(这是默认值)。

然后使用xticks方法来指定x轴上的刻度数以及它们的位置。

import matplotlib.pyplot as plot

x = range(1, 7)
y = (0, 300, 300, 290, 320, 315)
plot.bar(x, y, width=0.7, align="center")

ind = range(2, 7)    # the x locations for the groups
plot.xticks(ind, x)

plot.axhline(305, linewidth=3, color='r')

plot.show()

文档在http://matplotlib.org/api/pyplot_api.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接