在matplotlib中交替刻度标签
我想找到一种方法,让我的x轴刻度标签在两个层次之间交替显示。现在我的标签是:
A B C D
我想要的效果是:
A C
B D
但是我在谷歌、文档和StackOverflow上找不到相关的信息。
非常感谢!
1 个回答
3
你可以使用小刻度(通过 set_minor_locator
和 set_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')
不过要小心 FixedLocator
:为了避免大刻度被生成两次(一次作为大刻度,一次作为小刻度),我选择了固定的刻度位置,而不是使用 MultipleLocator
。你需要根据你的数据和窗口大小来调整这些刻度位置。
(这个想法是借鉴自 这里。)