关闭图形的所有子图的轴

时间:2016-01-08 21:30:37

标签: 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")

但是在子图上循环以单独转动轴是很难看的。 有没有办法告诉subplots在创建时转动od轴 或Figurepyplot上的某些设置会全局关闭轴。 pyplot.axis('off')仅在最后一个子图上关闭轴。

1 个答案:

答案 0 :(得分:1)

我同意with @tcaswell你应该只使用你已经使用过的东西。将其用作函数的另一个选择是使用numpy.vectorize()

sem_wait()

或者,如果需要多次调用它,可以将import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots(7, len(clusters)) np.vectorize(lambda ax:ax.axis('off'))(ax) d函数赋值给变量:

vectorize

再次注意,这与@tcaswell建议的相同,在更高级的设置中(可能只是更慢)。它与你现在使用的基本相同。

但是,如果你坚持以其他方式做(即你是一种特殊的懒惰),你可以设置matplotlib.rcParams一次,然后每个后续轴将自动为axoff_fun = np.vectorize(lambda ax:ax.axis('off')) # ... stuff here ... fig, ax = plt.subplots(7, len(clusters)) axoff_fun(ax) 。可能有一种更简单的方式来模仿off,但这里有我成功的方法:

axis('off')

结果之前/之后:

before rcparams after rcparams

希望我没有忘记覆盖任何意外,但无论如何,这在实际应用中会很快变得清晰。