我使用以下命令创建一个简单的绘图GLMakie:
GLMakie.scatter( range((-3e-9+1e-3)..(3e-9+1e-3),100), range(1..100,100) )
Run Code Online (Sandbox Code Playgroud)
结果如下:
看起来 x 轴被严重量化了。该Plots包可以很好地处理相同的命令:
Plots.scatter( range((-3e-9+1e-3)..(3e-9+1e-3),100), range(1..100,100) )
Run Code Online (Sandbox Code Playgroud)
GLMakie如果 x 范围以 0 为中心,也可以处理相同的图:
GLMakie.scatter( range((-5e-9)..(5e-9),100), range(1..100,100) )
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?是否GLMakie使用较小的浮子来提高速度?我可以做些什么来避免这种情况吗?
小智 2
GLMakie 是否使用较小的浮点数来提高速度?
是的,它确实。OpenGL 通常使用 32 位浮点,因此 Makie 是使用 Float32 构建的。现在,您需要标准化数据并手动调整刻度来解决此问题。请参阅https://makie.juliaplots.org/stable/examples/layoutables/axis/index.html#modifying_ticks
github 上也有很多与此相关的问题,例如https://github.com/JuliaPlots/Makie.jl/issues/1373。