PDF 和位图输出中 R 中的颜色渐变

Color gradients in R in PDF and bitmap output

我正在努力在 R 中获得视觉上可接受的颜色渐变(有关我的特定案例的详细描述,请参阅 here)。简而言之,问题是虽然 R window 中的输出看起来不错,但 PDF 在用于生成渐变的段之间显示细白线。

n <- 100
cc <- colorRampPalette(c("red", "blue"))(n)
plot.new()
par(mar=rep(0,4))
sapply(1:n, function(i) rect((i-1)/n, 0, i/n, 1, col=cc[i], border=NA))
dev.copy2pdf(file="test.pdf")

结果如下:

您可以看到白色的细线。它们的位置取决于缩放,所以我假设它们是 PDF 显示方式的产物。在另一个缩放中也是如此:

不幸的是,这些线条在打印输出中也可见。我想问题可能出在将矢量图形渲染为位图以进行显示或打印时,PDF 中的坐标如何四舍五入。

一种可能的解决方案是使用相互重叠的片段。这仅适用于纯色;不幸的是,我也想在渐变中使用透明颜色。

如何改进我的 PDF 输出?

您尝试过这个解决方案吗?第一个矩形将采用更大的 space,第二个将绘制在第一个矩形上,从而消除其后面的白线。我拿到的pdf不显示白线

n <- 100
cc <- colorRampPalette(c("red", "blue"))(n)
plot.new()
par(mar=rep(0,4))
sapply(1:n, function(i) rect((i-1)/n, 0, (i + 1)/n, 1, col=cc[i], border=NA))
dev.copy2pdf(file="test.pdf")

这是放大 6400%

这似乎是一个完全由渲染器引起的问题。例如:

我认为您无法通过更改 PDF 来从根本上解决问题。就我而言,Adobe Acrobat 在任何缩放级别下看起来都不错,除了非常高的缩放级别(我必须缩放到 3200% 才能看到白线)。

此外,Chrome 和 Microsoft Edge 似乎运行良好。