matplotlib - 将pyplot图“保存为图”(不是图像)
问题描述
如何在 Julia 中使用 PyPlot 保存图形,以便稍后在 Julia 中将图形重新加载为图形?(不是图像)
解决方案
您可以使用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
您可能还想使用plain PyPlot
(我强烈建议Plots
您灵活使用)。在这种情况下,最好的办法是遵循Matplotlib 的面向对象 API 中描述的规则:
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 中两者都是可能的。
推荐阅读
- powerbi - 如何在 Power BI 中按组计算单独的平均值?
- javascript - 如何使用jspdf以a4尺寸横向模式导出pdf?
- angular - 在拖动 mat-expansion-panel 时,扩展面板主体内的 tinymce 编辑器值被清除
- php - 将文本值 onblur 传递给同一页面上的 php 函数并将值重新调整到另一个文本字段
- angular - 将 Angular 服务注入到导出的函数中
- java - 使用带有 Java 8 可选字段的 Lombok。如何使用构建器填充字段
- javascript - 禁用数组中的按钮
- powershell - 如何导出包含文件夹中所有名称列表的 CSV 文件?
- pdf - 如何使用 Asciidoctor-pdf 修复创建的 PDF 不显示 üöä 字符
- popup - 导航栏中的 SwiftUI 按钮只能使用一次