Plots画图时,10M个点,jupyterlab不出图,怎么解决?

我在32G内存的苹果电脑上利用Plots包作图,画 10^7 个数据点的图,比如:

using Plots
y=randn(10_000_000)
plot(y)

jupyterlab没有任何输出。 10^7 个实数占内存约为80M,电脑内存是足够的。而当我把代码改成

using Plots
y=randn(1_000_000)
plot(y)

则可以画出图来(数据占内存约为8M)。

本人待解决的实际问题中需要 10^7 个数据点来表示快速变化的函数解,计算后也得到了一些很长的矢量(也就是函数数值解),但现在在jupyter中画不出图。

画不出图,请问原因会是什么?是Plots自身的限制,jupyterlab的限制,还是电脑显卡的限制?又该怎么解决?

谢谢!

PS: 显卡的可能性不大,因为Mathematica是可以画出相应的图来的。

jupyter 中应该默认画的是 svg,这么多个点肯定不行的,换下其它backend指定图像类型试试?

1 个赞

谢谢!

增加了

gr(fmt:=png)

后,导出了一张位图,比之前直接不工作前进了一步。有点遗憾的是,图片纵向中间一条白色的空白带,不能显示数据。

由于点很密,后来把线图改成了点图,效果看起来也勉强能应付,就画了点图,用的是Makie,出图速度还可以。

PS:一些帖子提到, 10^7 个点GR是轻松无压力的,可能是我还不熟悉怎么设置。

不使用JupyterLab,直接在terminal里运行:

julia> using GRUtils

julia> y=randn(10_000_000);

julia> plot(y)

3秒出图

厉害了! :clap: :clap: :clap: 画完很快!

最后图还是能显示出来,但是gksqt显示出图片还是慢的。刚刚测试的电脑显卡是Radeon Pro 570 4 GB,等了很久没什么动静 :sweat_smile:,不知道该怎么加速。