matplotlib中交替的刻度标签

时间:2014-08-20 21:16:57

标签: python matplotlib

我正在寻找一种方法来跨越两个级别来交替我的x轴刻度标签。我的标签现在是:

A B C D

我想要的是

A   C
  B   D

但我似乎无法在google / docs / SO上找到。

非常感谢!

1 个答案:

答案 0 :(得分:3)

您可以使用次要刻度(通过set_minor_locatorset_minor_formatter定义)。然后你可以转移,例如使用tick_params的所有主要滴答:

import pylab as pl
from matplotlib.ticker import FixedLocator, FormatStrFormatter

pl.plot(range(100))

pl.axes().xaxis.set_major_locator(FixedLocator(range(0, 100, 10)))
pl.axes().xaxis.set_minor_locator(FixedLocator(range(5, 100, 10)))
pl.axes().xaxis.set_minor_formatter(FormatStrFormatter("%d"))
pl.axes().tick_params(which='major', pad=20, axis='x')

enter image description here

但请注意FixedLocator:为避免产生两次主要蜱(一次为主要,一次为次蜱),我选择了固定的刻度位置,而不是使用MultipleLocator。您需要根据数据和窗口大小调整这些刻度位置。

(来自here的想法。)