Python 关闭地物所有子地块的轴

Python 关闭地物所有子地块的轴,python,matplotlib,Python,Matplotlib,我正在创建一个大型子地块阵列,我想为所有子地块关闭轴。 目前,我正在通过以下方式实现这一目标: fig, ax = plt.subplots(7, len(clusters)) fig.subplots_adjust(wspace=0, top=1.0, bottom=0.5, left=0, right=1.0) for x in ax.ravel(): x.axis("off") 但是在子地块上循环以单独旋转轴是很难看的。 有没有办法告诉子地块在创建时旋转od轴 或图或pyplo

我正在创建一个大型子地块阵列,我想为所有子地块关闭轴。 目前,我正在通过以下方式实现这一目标:

fig, ax = plt.subplots(7, len(clusters))
fig.subplots_adjust(wspace=0, top=1.0, bottom=0.5, left=0, right=1.0)

for x in ax.ravel():
    x.axis("off")
但是在子地块上循环以单独旋转轴是很难看的。 有没有办法告诉
子地块
在创建时旋转od轴 或
pyplot
上的某些设置,用于全局关闭轴。
pyplot.axis('off')
仅在最后一个子批上关闭轴。

我同意您可能应该只使用您已经使用的。将其用作函数的另一个选项是使用:

或者,如果需要多次调用它,请将
vectorize
d函数指定给一个变量:

axoff_fun = np.vectorize(lambda ax:ax.axis('off'))
# ... stuff here ...
fig, ax = plt.subplots(7, len(clusters))
axoff_fun(ax)
再次注意,这与@tcaswell建议的相同,是在一个更高级的设置中(可能只是较慢)。基本上和你现在用的一样


但是,如果您坚持以其他方式执行此操作(即,您是一种特殊的懒惰者),则可以设置一次,然后每个后续轴都将自动关闭
。也许有一种更简单的方法可以模拟axis('off'),但我是如何成功的:

import matplotlib as mpl

# before
mpl.pyplot.figure()
mpl.pyplot.plot([1,3,5],[4,6,5])

# kill axis in rcParams
mpl.rc('axes.spines',top=False,bottom=False,left=False,right=False);
mpl.rc('axes',facecolor=(1,1,1,0),edgecolor=(1,1,1,0));
mpl.rc(('xtick','ytick'),color=(1,1,1,0));

# after
mpl.pyplot.figure()
mpl.pyplot.plot([1,3,5],[4,6,5])
测试前/测试后的结果:


希望我没有忘记覆盖任何惊喜,但在实际应用程序中,这一点很快就会变得清楚。

为什么它很难看?您可以始终将其隐藏在函数中
remove_numbers=lambda ax:[x.axis('off'),用于ax.ravel()中的x]
import matplotlib as mpl

# before
mpl.pyplot.figure()
mpl.pyplot.plot([1,3,5],[4,6,5])

# kill axis in rcParams
mpl.rc('axes.spines',top=False,bottom=False,left=False,right=False);
mpl.rc('axes',facecolor=(1,1,1,0),edgecolor=(1,1,1,0));
mpl.rc(('xtick','ytick'),color=(1,1,1,0));

# after
mpl.pyplot.figure()
mpl.pyplot.plot([1,3,5],[4,6,5])