在 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
有帮助吗?

解决方案

这会起作用吗?

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

其他提示

你的意思是这样的吗:- 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')

查看 help(xticks) 和 help(matplotlib.text.Text) 了解更多选项

编辑:抱歉,我没有看到您也在询问如何将年份标签放在刻度线下方。我认为您必须手动执行此操作,请查看我链接的示例以了解如何执行此操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top