You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plots.jl生成透明PDF出现深色竖线问题排查与解决求助

问题分析与解决

成因

这是Plots.jl默认GR后端在PDF矢量输出时的渲染异常:

  • 当使用多子图布局且背景设为透明时,左侧子图的垂直网格线元素在GR的PDF渲染逻辑中出现重复绘制或图层叠加错误,导致整数x值(2、4、6、8、10)位置的线条颜色加深。
  • PDF作为矢量格式,由阅读器解析图形指令并实时渲染,后端的指令错误会被阅读器识别并显示;而PNG是位图格式,渲染过程直接生成像素,不会触发这类矢量渲染bug。

解决方法

1. 切换至其他后端

Plots.jl的PyPlot、PlotlyJS等后端的PDF渲染逻辑更稳定,可避免该问题:

using Plots
pyplot()  # 切换到PyPlot后端
x = 1:10
plot(plot([sin, x -> sin(x + 0.25π)], x),
     plot([sin, x -> sin(x + 0.25π)], x), 
     layout = (1, 2), background_color = :transparent)
Plots.savefig("nobackground.pdf")

2. 调整网格线设置

如果不需要垂直网格线,可在左侧子图中关闭垂直网格或仅保留水平网格:

using Plots
x = 1:10
# 仅保留水平网格,关闭垂直网格
plot(plot([sin, x -> sin(x + 0.25π)], x, grid=:y),
     plot([sin, x -> sin(x + 0.25π)], x), 
     layout = (1, 2), background_color = :transparent)
Plots.savefig("nobackground.pdf")

也可以直接关闭全部网格:grid=false

3. 更新GR后端

该bug可能已在GR的新版本中修复,在Julia REPL中执行以下命令更新:

] update GR

内容的提问来源于stack exchange,提问作者Cm7F7Bb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 05:21:00