如何在 Jupyter 笔记本中抑制 IJulia 的 svg 输出

问题描述 投票:0回答:1

我在 jupyter 笔记本中使用 julia 和 Plots.jl 创建最多包含 10^7 个项目的大型散点图。默认情况下,我得到 svg 输出,这使得 Safari 非常缓慢。它还会导致 .ipynb 笔记本文件中存储整个 svg 内联文件的巨大膨胀。

我指定了 format = :png 和 fmt = :png 并在浏览器中获取光栅化输出。这有助于加快速度。然而,在 .ipynb 文件中,我现在看到了 svg 和 base64 编码的 png,这使得膨胀更加严重。

在这两种情况下,使用 nbconvert 将我的笔记本转换为 pdf 都会停止。

我做了一些努力尝试使用默认的其他 Julia 绘图后端。由于安装问题(错误/过时的描述,不适用于 Mac,安装失败),这主要让我失败。

Google 发现了很多相反的结果,即人们获得栅格化输出并想要 svg 以获得更高的质量。我特别想要光栅化输出,因为这比我的用例中的矢量化输出更小、更快。

欢迎任何指点。

svg julia jupyter png plots.jl
1个回答
0
投票

将图片保存到文件:

f = tempname()*".png";
p = Plots.scatter(rand(10^7), rand(10^7),markersize=1);
savefig(p, f);

然后在笔记本中显示文件:

using FileIO, ImageIO, ImageShow
FileIO.load(f)

我的笔记本箱中的笔记本大小为 1MB - 包括图像。

© www.soinside.com 2019 - 2024. All rights reserved.