2014-02-18 54 views
0

我在Matlab中創建了一個使用離散的顏色條和自定義顏色映射的圖。理想情況下,我想將它保存爲後綴數字(.eps),以便我可以在Inkscape中進行一些編輯。但是,當我將它保存爲.eps格式時,在Inkscape中查看時,顏色條看起來是連續的(在其他程序中)。我需要做些什麼來阻止呢?在Matlab中使用postscript輸出的離散色條

我也嘗試將圖保存爲似乎可行的PDF(在我用來查看/編輯它的任何程序中,顏色條是離散的),但是在Inkscape中進行一些編輯並重新保存爲PDF(或其他格式像.eps和.png),顏色條再次切換爲連續。

這裏是我的彩條和代碼是我用來保存:

cmap=[118 18 19; 
     118 18 19; 
     184 18 21; 
     230 38 44; 
     255 127 0; 
     255 191 0; 
     247 217 9; 
     255 248 140; 
     182 237 240; 
     145 205 237; 
     107 174 232; 
     61 144 227; 
     32 114 214; 
     0 66 135; 
     0 31 103; 
     0 31 103; 
     0 31 103; 
     0 31 103; 
     0 31 103; 
     0 31 103]; 
cmap=cmap/255; 
colormap(cmap) 
caxis([-20 30] 
cb=colorbar('XTick',[-15 -12.5 -10 -7.5 -5 -2.5 0 2.5 5 7.5 10 12.5 15],'Xlim', [-17.5 17.5]); 
export_fig fig1 -pdf -eps -r600 -painters 

這裏是彩條(希望)的PDF版本。我無法解決如何發佈EPS版本。

如何停止從去不斷的彩條?我真的需要做一些編輯工作,因爲我無法讓Matlab在顏色條的末端做箭頭,而且我也可能需要使用文本。

回答

1

的唯一途徑我設法發現停止這一行爲是用Inkscape中顏色條的每個部分重新着色,而這些顏色部分應該在該部分中。實際上,我認爲這只是在該框中插入了另一個顏色的矩形,但它工作正常。如果我的tickmarks沒有完全分離色彩條的每個部分,這將不起作用。

不是一個漂亮的解決方案,但它爲我工作!

0

您可以在矢量格式打印帶有

print(gcf, '-dpdf', 'fig.pdf'); 

您還可以在圖中renderer屬性設置爲zbuffer供光柵陰謀。

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

都顯示和打印離散的顏色條。

+0

用於屏幕渲染的渲染器與用於硬拷貝輸出的渲染器不同。此外,你只想使用畫家渲染器進行矢量格式輸出。 – user664303

+0

我不想要柵格圖。它需要是一個向量。 – emmalgale

1

這是Inkscape如何導出位圖的問題,討論了here。解決的辦法是在一個文本編輯器打開有問題的PDF文件(Inkscape的輸出一個),找到線(S)

/Interpolate true 

和更換/他們

/Interpolate false 
+0

這可能是一個愚蠢的問題,但我如何在文本編輯器中打開PDF文件?我是Windows用戶,以防萬一。 我已經在我有過的各種編輯器中嘗試過了,它並沒有給我任何可以理解的東西! – emmalgale

+0

將PDF文件拖動到您的MATLAB編輯器窗口 - 它將以文本文件的形式打開。然後按Ctrl + F,在「查找內容」框中輸入「\ Interpolate true」,在「替換爲」框中輸入「\ Interpolate false」,然後單擊「全部替換」。保存該文件,然後在Adobe Reader中打開它並查看插值是否消失。 – user664303

+0

好吧,我已經在Matlab編輯器窗口中打開了PDF,但它看起來仍然像隨機字符。有幾行清晰的代碼,並且find沒有在任何地方找到'\ Interpolate'(我試着用一個小寫字母「i」,我一定是做錯了! – emmalgale