首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将pyplot figure保存为figure(不是图像)

将pyplot figure保存为figure(不是图像)
EN

Stack Overflow用户
提问于 2020-08-23 21:22:21
回答 1查看 100关注 0票数 2

如何在Julia中使用PyPlot保存图形,以便稍后可以在Julia中将该图形重新加载为图形?(不是图像)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-23 23:52:26

您可以使用serialize来存储任何Julia对象。这同样适用于绘图。

让我们首先生成一个图:

代码语言:javascript
运行
复制
using Plots
pyplot()
p = plot(rand(10));
using Serialization
Serialization.serialize("myfile.jld", p);

请注意,您需要在plot命令后加上分号,这样它才不会出现在屏幕上。

现在让我们来读一下图(为了进行一个完整的测试,我结束了之前的Julia会话,并开始了一个新的会话):

代码语言:javascript
运行
复制
using Plots
pyplot();
using Serialization
p2 = Serialization.deserialize("myfile.jld");

为了现在显示它,输入REPL就足够了:

代码语言:javascript
运行
复制
julia> p2

您可能还希望使用普通的PyPlot (为了灵活起见,我强烈推荐Plots )。在这种情况下,最好的办法是遵循object-oriented API of Matplotlib中描述的规则

代码语言:javascript
运行
复制
using PyPlot
ioff()
fig = subplot()
fig.plot(rand(10))
fig.set_title("Hello world")
using Serialization
serialize("pp.jld", fig)

为了对对象进行反序列化:

代码语言:javascript
运行
复制
using PyPlot
ioff()
using Serialization
fig = deserialize("pp.jld")
show()

最后,请注意,序列化只适用于短期存储。如果有任何变化(例如,您更新了Julia包),您可能无法反序列化绘图。因此,对于可处理的绘图,另一个很好的选择是将它们保存为LaTeX或SVG格式-这两种格式在Julia中都是可能的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63547440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档