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

时间:2017-02-22 09:08:55

标签: r pdf vector-graphics color-scheme

我很难在R中获得视觉上可接受的颜色渐变(有关我的特定情况的详细说明,请参阅here)。简而言之,问题是当R窗口中的输出看起来没问题时,PDF会在用于生成渐变的段之间显示细白线。

n, m = NO2.shape
df = pd.DataFrame(dict(
        NO2=NO2.ravel(),
        lat=lat.ravel(),
        lon=lon.ravel(),
        i=np.arange(n).repeat(m),
        j=np.tile(np.arange(m), n)
    ))

latBins = pd.cut(df.lat, np.linspace(-90, 90, 180 / .125 + 1))
lonBins = pd.cut(df.lon, np.linspace(-180, 180, 360 / .125 + 1))

g = df.groupby([latBins, lonBins])

结果如下:

screenshot 1

你可以看到细白线。它们的位置取决于缩放,因此我假设它们是PDF显示方式的工件。这是另一个缩放:

screenshot 2

不幸的是,这些线条在打印输出上也是可见的。我想问题可能是当矢量图形渲染到位图进行显示或打印时,PDF中的坐标如何变圆。

可能的解决方案是使用彼此重叠的片段。这仅适用于纯色;不幸的是,我也希望在渐变中使用透明色。

如何更好地使用PDF输出?

2 个答案:

答案 0 :(得分:2)

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

enter image description here

我不相信您可以对PDF进行任何改变以从根本上解决问题。在我的情况下,Adobe Acrobat在任何缩放级别都看起来很好,除非在非常高的变焦(我必须转到3200%变焦才能看到白线)。

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

答案 1 :(得分:0)

你试过这个解决方案吗?第一个矩形将占用更大的空间,第二个矩形将绘制在第一个矩形上,从而消除其后面的白线。我获得的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")

enter image description here 这是放大6400%