2014-07-19 57 views
3

我想在EPS格式保存一個數字與:如何設置「渲染器」?

saveas(gca, 'test.eps','epsc'); 

下圖是用「contourf」和繪製箭頭的自定義函數繪製。 (我正在使用其他人編寫的package,並且我不完全熟悉所有代碼)

有3種情況選擇不同的「渲染器」。

案例1:當我使用

set(gcf,'renderer','painters'); 

的EPS數字是不完整的,但 '清除' 和小尺寸。像圖1(轉換爲PNG): enter image description here

情況2:當我使用

set(gcf,'renderer','opengl'); 

do not use any 'renderer' 

的EPS數字是完整但模糊,像圖2: Figure 2

案例3:當我使用

set(gcf,'renderer','zbuffer'); 

set(findobj(gca,'type','patch'),'alphadatamap','none','facealpha',1); 

的EPS數字是不完整的兩者和模糊。

'不完整'表示「鐘形」以外的部分丟失。

'模糊'表示該圖是一種鋸齒狀。

我根據作者的notes(未滿5.k)使用這些渲染器。

下面是問題:如何使EPS圖完整清晰?

+2

我還沒有解決方案,但問題幾乎可以肯定的是,只有opengl渲染器支持透明度(即alpha〜= 1) – RTL

+0

這是軟件(Matlab)還是計算機的問題?也許我應該嘗試其他版本的Matlab或在其他機器上運行它... – leftriver

+0

你是否用不同的查看器打開EPS文件?根據我的經驗,不同的觀衆顯示eps的方式不同(有時)。確保您在最終的製作環境下查看它,例如,如果是用紙質報告在紙上打印並查看它的樣子。 – EJG89

回答

0

由於@RTL提到,與例(1)和(3)是您使用的是透明的補丁(在你的小波分析「的影響錐」)也不畫家也不zbuffer支持問題透明度(在更新版本的Matlab中,zbuffer已被刪除)。如果您更改任何對象的Alpha值(透明度),MatLab將自動切換爲opengl作爲圖形渲染器。

現在,至於模糊,您可以通過將'GraphicsSmoothing'選項設置爲'off'來解決此問題(請參閱matlab documentation),但此選項僅適用於from 2014b onwards。或者,你可以檢查這個related question in Stack Overflow。最後,如果你有一個很好的矢量編輯程序(比如Illustrator),你可以從Matlab中導出畫家渲染的EPS文件(一個PDF也可以),並使用外部編輯器來製作錐體影響半透明(您會發現EPS中的輪廓完整無損)。更少的工作:用一條線來描繪影響的錐體而不是一個補丁。