Matplotlib中的交替刻度标签

4

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

A B C D

我想要的是:

A   C
  B   D

但是我在谷歌/文档/SO上似乎找不到如何做到这一点的方法。
非常感谢!
1个回答

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。您需要根据自己的数据和窗口大小调整这些刻度位置。

(灵感来源于这里。)


这个方法很管用。本来希望能按照要求直接排序主刻度,但这个方法也很好用 :)。 - Kevin

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