Matplotlib 在pyplot子图中保留轴的同时删除帧
我正在创建一个包含3个子图的图形,我想知道是否有任何方法可以在保留轴的同时移除它们周围的框架?使用轴手柄的Matplotlib 在pyplot子图中保留轴的同时删除帧,matplotlib,frame,axes,subplot,Matplotlib,Frame,Axes,Subplot,我正在创建一个包含3个子图的图形,我想知道是否有任何方法可以在保留轴的同时移除它们周围的框架?使用轴手柄的轴(“关闭”)方法可以实现类似的效果。这就是你想要的东西吗?(下图中的示例代码) 如果要删除轴脊椎,但不删除其他信息(记号、标签等),可以这样做: 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 +
轴(“关闭”)
方法可以实现类似的效果。这就是你想要的东西吗?(下图中的示例代码)
如果要删除轴脊椎,但不删除其他信息(记号、标签等),可以这样做:
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)
或者更容易地使用:
这两种方法都将为您提供:
试试plt.box(on=None)
它只删除了绘图周围的边框(frame),这就是我要做的
plt.axis('off')
删除了勾号标签和边界框,这不是我想要实现的。如果碰巧有极坐标图,则脊椎的定义不同,因此根据需要:a.spines['polar']。在Python 3中设置为可见(False),for循环更简单:对于in-ax:
@mwaskom如何将x轴保持在上述代码中的最后一个子地块?
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)
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)