在刻度线之间放置标签

时间:2009-10-25 13:30:55

标签: python matplotlib

在matplotlib中,如何在刻度线之间放置刻度标签(不低于刻度线)

例如:当绘制股票价格随着时间的推移时,我希望x轴次要刻度显示连续x轴主要刻度之间的月份和年份(不仅仅是在主要刻度之下)

---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---
  jan feb mar apr may jun jul aug sep oct nov dec jan feb mar apr may jun jul aug sep
                       2008                                            2009

2 个答案:

答案 0 :(得分:5)

这会起作用吗?

enter code here
x = 'j f m a m j j a s o n d j f m a m j j a s o n d'.split()
y = abs(randn(24))
x[6] = 'j\n2008' # replace "j" (January) with ('j' and the appropriate year
x[18] = 'j\n2009'
bar(xrange(len(x)), y, width=0.1)
bar(xrange(len(x)), y, width=0.1)
xticks(xrange(len(x)), x, ha='center')

Barchart with proper labels

答案 1 :(得分:1)

你的意思是这样的: - http://matplotlib.sourceforge.net/examples/pylab_examples/barchart_demo.html ??

您必须使用xticks和ha(或'horizo​​ntalalignment')参数:

>>> x = 'j f m a m j j a s o n d'.split()
>>> y = abs(randn(12))
>>> bar(xrange(len(x)), y, width=0.1)

>>> xticks(xrange(len(x)), x, ha='center')

查看帮助(xticks)和帮助(matplotlib.text.Text)以获取更多选项

编辑:抱歉,我没有看到你也在询问如何将年份标签放在下方。我认为你必须手动完成,看看我已经链接的示例,看看如何做到这一点。