如何从matplotlib中的轴中删除xtics?

时间:2013-08-15 16:34:45

标签: python matplotlib axis-labels

我在matplotlib中使用子图。由于我的所有子图都具有相同的x轴,我只想在底部图上标记x轴。如何从一个轴上删除xtics?

2 个答案:

答案 0 :(得分:3)

正如here指出的那样,以下是有效的!

plt.tick_params(\
    axis='x',          # changes apply to the x-axis
    which='both',      # both major and minor ticks are affected
    bottom='off',      # ticks along the bottom edge are off
    top='off',         # ticks along the top edge are off
    labelbottom='off') # labels along the bottom edge are off

答案 1 :(得分:1)

Dan,如果您使用

以OOP方式设置地块
import matplotlib.pyplot as plt
fig, ax_arr = subplots(3, 1, sharex=True)

然后使用

之类的东西很容易隐藏x轴标签
plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False)
# or
plt.setp([a.get_xticklabels() for a in ax_arr[:-1]], visible=False)

但请查看this link,其中一些更深层次的示例将证明是有用的。

修改

如果你不能使用plt.subplots(),我仍然认为你可以做到

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)

ax1.plot(x1, y1)
ax2.plot(x2, y2)

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

如果您有超过2个子图,例如

ax1 = fig.add_subplot(N11)
ax2 = fig.add_subplot(N12)
...
axN = fig.add_subplot(N1N)

plt.setp([a.get_xticklabels() for a in (ax1, ..., axN-1)], visible=False)