如何在Julia中使用PyPlot保存图形,以便稍后可以在Julia中将该图形重新加载为图形?(不是图像)
发布于 2020-08-23 23:52:26
您可以使用serialize来存储任何Julia对象。这同样适用于绘图。
让我们首先生成一个图:
using Plots
pyplot()
p = plot(rand(10));
using Serialization
Serialization.serialize("myfile.jld", p);请注意,您需要在plot命令后加上分号,这样它才不会出现在屏幕上。
现在让我们来读一下图(为了进行一个完整的测试,我结束了之前的Julia会话,并开始了一个新的会话):
using Plots
pyplot();
using Serialization
p2 = Serialization.deserialize("myfile.jld");为了现在显示它,输入REPL就足够了:
julia> p2您可能还希望使用普通的PyPlot (为了灵活起见,我强烈推荐Plots )。在这种情况下,最好的办法是遵循object-oriented API of Matplotlib中描述的规则
using PyPlot
ioff()
fig = subplot()
fig.plot(rand(10))
fig.set_title("Hello world")
using Serialization
serialize("pp.jld", fig)为了对对象进行反序列化:
using PyPlot
ioff()
using Serialization
fig = deserialize("pp.jld")
show()最后,请注意,序列化只适用于短期存储。如果有任何变化(例如,您更新了Julia包),您可能无法反序列化绘图。因此,对于可处理的绘图,另一个很好的选择是将它们保存为LaTeX或SVG格式-这两种格式在Julia中都是可能的。
https://stackoverflow.com/questions/63547440
复制相似问题