删除帧同时保持轴在pyplot子图中

时间:2014-02-25 14:22:32

标签: matplotlib frame axes subplot

我正在创建一个包含3个子图的图形,并且想知道是否有任何方法可以在保持轴到位的同时移除它们周围的框架?

3 个答案:

答案 0 :(得分:16)

如果你想删除轴刺,而不是其他信息(刻度线,标签等),你可以这样做:

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)

这两种方法都会给你:

enter image description here

答案 1 :(得分:13)

尝试plt.box(on=None)它仅删除 图表周围的边界框(框架),这正是我想要做的。

plt.axis('off')删除了刻度标签和边框,这不是我想要完成的事情。

希望这有帮助。

答案 2 :(得分:3)

您可以使用轴句柄的axis('off')方法实现此类操作。这是你追求的那种东西吗? (图中的示例代码)。

subplots without axes shown

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()