如何从matplotlib中删除框架(pyplot.图与matplotlib.图)(matplotlib中的framework=false问题)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (37)

要删除图中的框架,我编写

frameon=False

作品完美pyplot.figure,但是matplotlib.Figure它只移除灰色背景,框架就会保持不变。另外,我只想让线条显示出来,所有其他的数字都是透明的。

有了pyplot,我可以做我想做的事,我想用matplotlib来做,因为我不想提这个问题。

提问于
用户回答回答于

例如:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(10))

for item in [fig, ax]:
    item.patch.set_visible(False)

with open('test.png', 'w') as outfile:
    fig.canvas.print_png(outfile)

如果您不想显示除了这条线以外的任何东西,请使用ax.axis('off'):

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot(range(10))

fig.patch.set_visible(False)
ax.axis('off')

with open('test.png', 'w') as outfile:
    fig.canvas.print_png(outfile)

但是,在这种情况下,您可能想要使斧头占据完整的数字。如果您手动指定轴的位置,您可以告诉它占据完整的图形(交替地,您可以使用subplots_adjust,但对于单个轴来说,这更简单)。

import matplotlib.pyplot as plt

fig = plt.figure(frameon=False)
ax = fig.add_axes([0, 0, 1, 1])
ax.axis('off')

ax.plot(range(10))

with open('test.png', 'w') as outfile:
    fig.canvas.print_png(outfile)

用户回答回答于

ax.axis('off'),删除除标线外的所有东西。

ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)

如果移除xyplot的tick设置:

 ax.get_xaxis().set_ticks([])
 ax.get_yaxis().set_ticks([])

扫码关注云+社区