2012-05-03 40 views
4

在使用填充曲線繪製圖時,我正在努力解決問題。在充滿的地區之間,似乎有一個「差距」。但是,這些工件不會出現在打印件上,而是取決於查看器和縮放選項。在Gnuplot中,我使用eps終端,eps文件看起來不錯,但是當我轉換爲pdf格式時出現這些行。轉換它或者直接在繪圖之後完成,或者將latex文檔從dvi轉​​換爲pdf。由於現在大部分文件都在顯示屏上,這是一個問題。當我在Gnuplot中直接使用pdfcairo終端時,問題也會出現,所以它不是由轉換引起的(單獨嘗試epstopdf和ps2pdf)。pdf中的令人困擾的文物

我附加了「acroread」中顯示的情節的SCREENSHOT(在其他pdf-觀看者中出現同樣的問題)。

有沒有人有一個想法如何擺脫它,但保持圖形矢量化?

vertical lines

回答

2

我剛碰到同樣的問題。顯然,兩條曲線間的填充是作爲一組不完全相互接觸的多邊形完成的,因此在某些PDF閱讀器上可以看到細的白色線條。

解決此問題的一種方法是繪製這些多邊形邊界。第一 定義gnuplot的MIN和MAX函數:

min(x, y) = x < y ? x : y 
max(x, y) = x > y ? x : y 

然後,假設的「數據文件」該列1包含您的x值和 該列2和3包含曲線2和3的y值,寫:

plot "datafile" using 1:2:3 with filledcurves lc rgb "gray", \ 
"" using 1:2:(min($2, $3)):(max($2, $3)) with yerrorbars ps 0 lt 1 \ 
lc rgb "gray" lw 0.5 

第一個繪圖指令用灰色填充曲線之間的空格。 第二條繪圖指令在薄(lw 0.5),連續(lt 1),灰色 (lc rgb「灰色」)的情況下繪製曲線(2)上每個 x值(1)處的零大小(ps 0)垂直錯誤條(yerrorbars)從較低的到 曲線2和3中的較高者。

這涵蓋了白線。爲了獲得最好的結果,您可能需要 實驗與棒的厚度(例如,lw 0.6,lw 0.2)。

0

如果你談論的是紅色和青色位的差距可能是造成紅色+青色=白色RGB一個屏幕上的錯覺。也許沒有間隙,但由於像素的接近,邊界區域顯示爲白色。

截取屏幕截圖並炸掉它,以便您可以看到感知間隙周圍的各個像素。

如果是這樣的話,也許選擇不同的顏色方案爲相鄰colurs將擺脫效果。除了紅色和青色色彩之外,我無法在任何地方看到與您的描述相符的任何內容。

+0

我的意思是垂直線條,在灰色區域最好可見。無論他們使用哪種顏色,我只是想要灰色區域,如在eps圖形中 –

+0

我沒有gnuplot的工作實例,所以我無法真正做更多的故障排除。答案只是一個猜測。嘗試繪製後記,並看看它是如何實際呈現圖形。 – ConcernedOfTunbridgeWells

+1

您也可以通過其他PDF閱讀器查看它。有很多基於ghostscript引擎的OSS。看看問題是否出現在渲染引擎中。 – ConcernedOfTunbridgeWells

-1

https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/ivRaKpu5cJ8,它似乎是一個純粹的Gostscript問題。

使用的Gnuplot的EPS終端和EPS文件與

epstopdf -nogs <file.eps> -o <file.pdf> 

轉換爲PDF解決我的系統上的問題。從相應的手冊頁中,「-nogs」選項指示epstopdf不使用Gostscript。

+0

我試過了,輸出文件不是PDF,我無法用PDF查看器打開它 –

1

問題仍然存在於Gnuplot 5.0.4和至少cairolatex終端,我用它來輸出PDF文件。 我也想爲兩條曲線之間的區域着色,在我的情況下定義爲函數。

當我使用類似

f(x) = 2 + sin(x) 
g(x) = cos(x) 
plot '+' using 1:(f($1)):(g($1)) with filledcurves closed 

我得到了相同的垂直白線作爲的問題。

爲曲線A簡單的解決方案,其中一個始終高於另一種是讓的Gnuplot從上部曲線與x軸填充的區域與所述期望的顏色,然後從向下下部曲線與白色漆過來:

f(x) = 2 + sin(x) 
g(x) = cos(x) 
plot f(x) with filledcurves x1, g(x) w filledc x1 fs lc rgb "white" 

很顯然,這種裝入曲線樣式(不是在曲線之間,而是在曲線和軸之間)避免了梯形失真。 這可以很容易地擴展繪圖數據文件和多個堆積治療像問題。只需從頂部塗抹到pottom,然後用白色完成最低曲線和x軸之間的空白區域。

對於重疊曲線,像來自françois-tonneau的答案中的最小和最大麴線的構造可能會有所斬獲。

1

此問題已修復與gnuplot的5.2,看到https://sourceforge.net/p/gnuplot/patches/749/

實際的問題是,那漫天曲線繪製之前儘可能多的四邊形,這導致了許多觀衆因抗鋸齒失真(白條紋)。

由於版本5.2填充曲線呈現爲單個多邊形,這可以防止出現這些問題(請參閱上面鏈接的問題)。