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

bra*_*n85 18 axes matplotlib frame subplot

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

mwa*_*kom 19

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

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)
Run Code Online (Sandbox Code Playgroud)

或者,更容易使用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)
Run Code Online (Sandbox Code Playgroud)

这两种方法都会给你:

在此输入图像描述


小智 19

尝试plt.box(on=None)它删除只有边框(框架)周围的情节,这是我要怎样做.

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

希望这可以帮助.


Bon*_*fum 6

您可以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()
Run Code Online (Sandbox Code Playgroud)