无边框matplotlib图

Osm*_*hop 3 python matplotlib

有没有办法保存matplotlib图形没有框架边框,同时保持背景不透明?

正如我在下面的代码中显示的那样将框架设置为"关闭"不起作用,因为这会移除背景使其透明,而我想保留白色背景,只是没有边框.

a = fig.gca()  
a.set_frame_on(False)  
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试做的截图.如果可以删除边框,那么我可以单独绘制x轴线.

在此输入图像描述

所有建议都非常感谢.

Phi*_*oud 7

在这里提出了类似的问题:如何在matplotlib中删除上轴和右轴?。Google搜索“隐藏轴matplotlib”将其作为第5个链接。

去除刺:

x = linspace(0, 2 * pi, 1000)
y = sin(x)
fig, ax = subplots()
ax.plot(x, y)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.grid(axis='y')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


wfl*_*nny 7

你可以尝试使用ax.spines.例如:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot(x, y)

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['left'].set_visible(False)
Run Code Online (Sandbox Code Playgroud)

如果你想要移除所有刺(也可能是蜱),你可以做到

[s.set_visible(False) for s in ax.spines.values()]
[t.set_visible(False) for t in ax.get_xticklines()]
[t.set_visible(False) for t in ax.get_yticklines()]
Run Code Online (Sandbox Code Playgroud)

  • `ax.tick_params(left = False,right = False)`等等,比循环每组刻度线要容易一些. (4认同)

nev*_*ves 7

一个更简单的方法:

import matplotlib.pyplot as plt
plt.tick_params(left=False, labelleft=False) #remove ticks
plt.box(False) #remove box
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用“Axes”对象:“ax.set_frame_on(False)” (2认同)