2015-04-23 36 views
7

Matlab中的補丁從單個三角形粘在一起。它們的邊緣通常是不可見的,但是當我在矢量圖形格式導出數字它們可以清楚地看出(不是整個圖像被示出,只是一個放大部分)MATLAB:在作爲矢量圖形輸出後可見的補丁邊緣

edges of individual triangles

代碼,以生成這是MWE:

xx = [0:1:100, 100:-1:0]; 
yy = [zeros(1,101), ones(1,101)]; 
p1 = patch(xx,yy,'b'); 
print('testPatch','-dpdf','-painters') 

複用功能fill行爲相同。有沒有辦法避免這個bug,或者我必須在這種情況下使用位圖嗎?

編輯:一種解決方法是孵化區域,而不是填充它。這顯然不總是可能的,但在我的情況下,它很好地工作,我可以堅持矢量圖形。相關的FEX提交是http://www.mathworks.com/matlabcentral/fileexchange/30733-hatchfill

+0

我不確定是什麼導致了這種情況,但是我在用圓形標記導出圖時觀察到了類似的行爲。圓形標記最終看起來像由多個三角形組成的斑狀多邊形。 –

+1

我認爲你描述的問題有一個簡單的解決方案:不要使用'o'作爲標記類型,而是使用'。'。據我所知,這對我來說是個訣竅。 – FliegenderZirkus

+1

我不會厭倦從Matlab FEX推薦'export_fig'。它出色的工作表現出色,比馬耳他本身更好。試試看。 –

回答

0

plot2svg允許創建帶有完整補丁的矢量圖形文件(SVG)。我還會繼續關注export_fig的更新,看起來Yair Altman是working on this issue。對Mathworks的解決方案不會屏住呼吸。

0

散亂的矢量圖形輸出(切片,三角形,矩形而不是聯合對象)是R2014b圖形引擎更新後的祕密功能之一。

我能夠將這些三角形與以下python腳本一起使用,使用Inkscape系統調用 https://github.com/Sbte/fix_matlab_eps。 但是,這是解決方法,適用於簡單的情節。這不是解決方案。

要麼使用光柵輸出,要麼保存您的數據並使用python matplot軟件。