2017-02-22 74 views
6

我很努力在R中獲得視覺上可接受的顏色漸變(請參閱here瞭解我的特定情況的詳細說明)。簡而言之,問題是雖然R窗口中的輸出看起來不錯,但PDF文件顯示用於生成漸變的片段之間的細線,白線。PDF中的R中的顏色漸變和位圖輸出

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") 

下面是結果:

screenshot 1

你可以看到細白線。它們的位置取決於縮放,所以我認爲它們是PDF顯示的工件。在這裏,在另一變焦相同的:

screenshot 2

不幸的是,這些線路也到打印輸出上可見。我猜這個問題可能與PDF中的座標在向量圖形呈現爲位圖以進行顯示或打印時四捨五入。

一個可能的解決方案是使用彼此重疊的片段。這僅適用於純色;不幸的是,我想在漸變中使用透明的顏色。

我能做些什麼來使我的PDF輸出更好?

+0

你可以設置邊界顏色爲理智的部分'border = cc [i]' – user20650

+0

nope,透明度相同的問題。其實,我曾嘗試像這樣解決它。這是爲什麼這不起作用:http://stackoverflow.com/questions/41088751/riverplot-package-in-r-output-plot-covered-in-gridlines-or-outlines – January

+0

我跑你的代碼,但我不看不到白線。無論是在x11設備還是在輸出pdf(福昕PDF)!嘗試使用其他pdf應用程序 – Faridcher

回答

2

這似乎是一個問題,純粹是由於渲染放大英寸例如: -

enter image description here

我不相信有什麼事,你可以改變對PDF從根本上解決問題。就我而言,除了非常高的縮放比例(我不得不去3200%縮放以查看白線)之外,Adobe Acrobat在任何縮放級別都很好看。

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

+0

謝謝!這很有幫助。 – January

0

您是否試過這種解決方案?第一個矩形將佔用更大的空間,第二個將被繪製在第一個矩形上,從而消除它後面的白線。那Ive得到了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%的

+1

是的,請閱讀我原始帖子中以「A possible」開頭的段落。問題是如果你使用透明的顏色,那麼你會得到黑暗的條紋。 – January