在matplotlib中启用sharex时自定义ticks标签

2024-09-30 20:21:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个共享x轴的堆叠子批次,因为这两个子批次的记号可见性都设置为false,因为我不想看到记号标签。在绘制了这两个子图之后,我想在x-asis上添加一些额外的记号,只用于第二个子图,但它们不必成为主记号。 我是说,这样做:

        #xticks = list of x points
        #xlabs = list of labels
        #secondplot.set_xticks(xticks) 
        #secondplot.set_xticklabels(xlabs)

将根据这些新记号更改第一个子绘图格线,就像它们成为新的主记号一样。有没有一种方法可以在不影响整个绘图区域的情况下仅标记第二个子图中的某些x轴点?谢谢你


Tags: offalse绘图labels绘制标签pointslist
2条回答

这适用于在使用sharex时从一个轴上删除记号标签,但我看不到同时删除记号的解决方案。。在

import matplotlib.pylab as pl

pl.figure()
ax1=pl.subplot(211)
ax1.plot([0,10],[0,10])

ax2=pl.subplot(212, sharex=ax1)
ax2.plot([0,10],[10,0])

pl.setp(ax1.get_xticklabels(), visible=False)

enter image description here

我知道我迟到了,但我也遇到了类似的问题,我想分享我的解决方案,以防其他人需要帮助。在

可以使用^{}控制轴的主刻度和次刻度的样式。将第一个子批次的刻度长度设置为0可以实现以下目的:

ax.tick_params(axis="x", which="both", length=0.)

(“x”、“y”或“both”)选择设置对其有影响的轴,(“major”、“minor”或“both”)选择记号类型。 当然,您还可以使用ax.set_xticks(ticks, minor=False)设置主刻度和次刻度。一个完整的例子:

^{pr2}$

得到:https://i.stack.imgur.com/oc7y0.png

相关问题 更多 >