我有两个共享x轴的叠加子图,对于两个子图,标记的可见性设置为false,因为我不想看到标记标记。在绘制了两个子图之后,我想在x-asis上添加一些额外的刻度,仅用于第二个子图,但它们不必成为主要的刻度。 我的意思是,这样做:
#xticks = list of x points
#xlabs = list of labels
#secondplot.set_xticks(xticks)
#secondplot.set_xticklabels(xlabs)
将根据这些新的刻度改变第一个sublplot网格,就像它们成为新的主要刻度一样。有没有办法在第二个子图中标记一些x轴点而不影响整个图区域?谢谢
答案 0 :(得分:2)
我知道晚会很晚,但是我遇到了类似的问题,并希望分享我的解决方案,以防万一其他人需要帮助。
您可以使用matplotlib.axes.Axes.tick_params
来控制轴的主要和次要刻度线的样式。将第一个子图的刻度长度设置为0应该可以解决问题:
ax.tick_params(axis="x", which="both", length=0.)
axis (“ x”,“ y”或“ both”)选择设置生效的轴, which (“ major”,“次要”或“两者”)选择报价类型。
当然,您还可以使用ax.set_xticks(ticks, minor=False)
设置主要和次要刻度线。完整示例:
import matplotlib.pyplot as plt
fig, axarr = plt.subplots(2, 1, sharex="col")
axarr[0].plot(range(11))
axarr[1].plot(range(11)[::-1])
axarr[0].tick_params(axis="x", which="both", length=0.)
axarr[1].set_xticks(range(0, 11, 3))
axarr[1].set_xticks(range(0, 11), minor=True)
plt.show()
答案 1 :(得分:1)