在刻度之间放置标签
在matplotlib这个库里,我该怎么把刻度标签放在刻度之间(而不是在刻度下面)呢?
举个例子:当我绘制股票价格随时间变化的图时,我希望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 个回答
1
你是说像这样吗:
- http://matplotlib.sourceforge.net/examples/pylab_examples/barchart_demo.html ??
你需要使用 xticks 和 ha(或者说 'horizontalalignment')这个参数:
>>> 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) 来获取更多选项
补充一下:抱歉,我没注意到你还在问如何把年份标签放在刻度下面。我觉得你得手动设置一下,看看我链接的例子,里面有教你怎么做。
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')