10

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

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

a = fig.gca()  
a.set_frame_on(False)  

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

在此处输入图像描述

非常感谢所有建议。

4

3 回答 3

19

这里问了一个类似的问题:如何删除 matplotlib 中的顶部和右侧轴?. 谷歌搜索“隐藏轴 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')

在此处输入图像描述

于 2013-09-04T01:46:36.390 回答
8

您可以尝试使用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)

如果你想删除所有的刺(可能还有蜱虫),你可以这样做

[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()]
于 2013-09-04T01:47:15.470 回答
8

更简单的方法:

import matplotlib.pyplot as plt
plt.tick_params(left=False, labelleft=False) #remove ticks
plt.box(False) #remove box
于 2017-11-30T19:41:01.403 回答