使用import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import AxesGrid
fig = plt.figure()
grid = AxesGrid(fig, 111, nrows_ncols=(2, 2), share_all=True)
#grid[-1].set_xticks([0.2, 0.4, 0.6, 0.8, 1.0]) # This applies to *all* axes
plt.show()
创建具有共享轴的紧密间隔的子图。这导致轴相交的刻度标签重叠(图A)。为了避免这种重叠,我想删除右下轴的第一个刻度。但是,轴是共享的,因此第一个刻度标签也会在其他轴上被删除(图B)。
有没有办法在共享轴上显示不同的刻度标签?
(x,y)
答案 0 :(得分:1)
您可以从网格获取轴手柄,该网格只是一个包含ax=grid[3]
的列表,然后使用xticks = ax.xaxis.get_major_ticks()
和xticks[1].label1.set_visible(False)
。作为一个最小的例子,
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import AxesGrid
import numpy as np
from matplotlib.cbook import get_sample_data
#Setup figure/grid
fig = plt.figure()
grid = AxesGrid(fig, 111, nrows_ncols = (2, 2), share_all=True)
#Plot some data
f = get_sample_data("axes_grid/bivariate_normal.npy", asfileobj=False)
Z = np.load(f)
for i in range(4):
im = grid[i].imshow(Z)
#Set tick one of axis 3 in grid to off
ax = grid[3]
xticks = ax.xaxis.get_major_ticks()
xticks[1].label1.set_visible(False)
plt.draw()
plt.show()