【发布时间】:2014-03-27 20:08:49
【问题描述】:
我正在创建一个包含 3 个子图的图形,并且想知道是否有任何方法可以移除它们周围的框架,同时保持轴就位?
【问题讨论】:
标签: matplotlib frame axes subplot
我正在创建一个包含 3 个子图的图形,并且想知道是否有任何方法可以移除它们周围的框架,同时保持轴就位?
【问题讨论】:
标签: matplotlib frame axes subplot
试试plt.box(on=None)它只删除了情节周围的边界框(框架),这是我想要做的。
plt.axis('off') 删除了刻度标签和边界框,这不是我想要完成的。
【讨论】:
如果您想删除轴脊,而不是其他信息(刻度、标签等),您可以这样做:
fig, ax = plt.subplots(7,1, sharex=True)
t = np.arange(0, 1, 0.01)
for i, a in enumerate(ax):
a.plot(t, np.sin((i + 1) * 2 * np.pi * t))
a.spines["top"].set_visible(False)
a.spines["right"].set_visible(False)
a.spines["bottom"].set_visible(False)
或者,更简单的是,使用seaborn:
fig, ax = plt.subplots(7,1, sharex=True)
t = np.arange(0, 1, 0.01)
for i, a in enumerate(ax):
a.plot(t, np.sin((i + 1) * 2 * np.pi * t))
seaborn.despine(left=True, bottom=True, right=True)
这两种方法都会给你:
【讨论】:
for a in ax:
您可以使用轴句柄的axis('off') 方法实现类似的效果。这是你所追求的吗? (下图示例代码)。
fig, ax = plt.subplots(7,1)
t = np.arange(0, 1, 0.01)
for i, a in enumerate(ax):
a.plot(t, np.sin((i+1)*2*np.pi*t))
a.axis('off')
plt.show()
【讨论】: