栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

调用pyplot.show()后保存图形会导致文件为空

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

调用pyplot.show()后保存图形会导致文件为空

如果要在显示图形后保存图形,则需要保留图形实例。

plt.savefig
调用后不起作用的原因
show
是当前数字已被重置。

pyplot
跟踪
show
幕后场景中哪些图形,轴等是“当前”(即尚未显示)。
gcf
gca
等的 Ç urrent
˚F igure和电流 一个 分别XES实例。
plt.savefig
(以及基本上任何其他
pyplot
方法)都可以
plt.gcf().savefig(...)
。换句话说,获取当前的图形实例并调用其
savefig
方法。同样
plt.plot
基本上没有
plt.gca().plot(...)


show
调用之后,“当前”图形和轴的列表为空。

通常,最好直接使用图形和轴实例进行绘图/保存/显示/等,而不是使用

plt.plot
,等隐式获取当前图形/轴并在其上绘图。使用
pyplot
所有东西(尤其是交互方式)并没有什么错,但是它可以更轻松地拍摄自己的脚。

使用

pyplot
plt.show()
并产生一个数字和轴(多个)对象,但随后直接使用数字或轴的方法。(例如,
ax.plot(x,y)
代替
plt.plot(x,y)
,等等)此方法的主要优点是它很明确。您知道要绘制的对象是什么,不必知道pyplot状态机的功能(尽管也不难理解状态机接口)。

作为“推荐”处理方式的示例,请执行以下操作:

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-1, 1, 100)y = x**2fig, ax = plt.subplots()ax.plot(x, y)fig.savefig('fig1.pdf')plt.show()fig.savefig('fig2.pdf')

如果您希望将

pyplot
界面用于所有功能,则只需在调用之前获取图形实例
show
。例如:

import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-1, 1, 100)y = x**2plt.plot(x, y)fig = plt.gcf()fig.savefig('fig1.pdf')plt.show()fig.savefig('fig2.pdf')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647324.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号