如何在Julia的GLMakie中将绘图背景全部设置为黑色?
解决GLMakie绘制奇怪吸引子背景黑色的问题
问题出在datashader生成的绘图层默认背景为白色,覆盖了你设置的Axis背景色,导致只有边框显示黑色。以下是修改后的代码及关键调整点:
关键修改
- 在
datashader调用中直接指定backgroundcolor,设置无数据区域的颜色为黑色 - 将Axis的背景色配置合并到
axis关键字参数中,确保生效
修改后的完整代码片段
fig = Figure(size=(1500, 1500), backgroundcolor = RGBAf(0, 0, 0, 1)) fig_grid = CartesianIndices((1, 1)) cmap = to_colormap(:BuPu_9) cmap[1] = RGBAf(1, 1, 1, 1) let n_points = 10^6 for (i, arg) in enumerate(cargs) points = trajectory(Juan, arg...; n=n_points) # 去掉冗余的global,let块内用局部变量更规范 r, c = Tuple(fig_grid[i]) ax, plot = datashader(fig[r, c], points; colormap=cmap, async=false, backgroundcolor=RGBAf(0, 0, 0, 1), # 核心:设置datashader空白区域背景为黑色 axis=(; type=Axis, title=join(string.(arg), ", "), backgroundcolor=RGBAf(0, 0, 0, 1) # 配置Axis自身背景色 )) hidedecorations!(ax) hidespines!(ax) end end rowgap!(fig.layout,5) colgap!(fig.layout,1) display(fig)
额外说明
datashader的backgroundcolor参数直接控制绘图区域的空白背景色,这是解决问题的核心- 同时配置Axis背景色,确保datashader图层未覆盖到的边缘区域也显示黑色
- 去掉
global关键字符合Julia局部变量优先的编程规范
内容的提问来源于stack exchange,提问作者Maxime Jaccon
相关产品推荐
相关产品推荐

