2016-12-31 102 views
0

我需要一些來產生一些出版物質量的數字。我首先以.svg格式導出matlab中的數據,然後在inkscape中做一些後處理。我使用plotscatter生成的數字沒有問題,但是當我輸出使用surf(在view(2)中)生成的數字時,我遇到了問題。如果我使用plotscatter,我可以在inkscape中取消組合並處理各種部分,如標題,座標軸,分散點,線條等。然而,對於surf,matlab只是將一個數字與所有不同部分一起輸出到一個單元中。我無法分離單個部分,而當縮放得非常近時,我實際上可以看到軸和標題的位圖分辨率(如果我使用plot,當縮放非常接近時,標題和軸具有「無限」分辨率)。我對於具有有限分辨率的曲面圖很滿意,但我需要至少能夠處理軸和標題(我目前無法完成)。我應該怎麼做才能將標題和座標軸從主圖中「分離」,就像從plotscatter生成的數字一樣?從matlab表面圖輸出svg圖像

回答

0

我用Inkscape中爲我的科學出版物爲好,但我發現,很多時候,你可以用matlab2tikz matlabscript在乳膠取得更好的成績與pgfplots一起。網上有大量資源,但以下是我的工作流程將如何應用於您的衝浪情況。我有安裝乳膠,matlab和matlab2tikz的macOSX。將在linux上很少或沒有修改。

在Matlab中:

surf(peaks(25)) 
matlab2tikz('plot.tikz’) 

然後,我有以下的bash腳本(只是在同一文件夾中的形象,這是僅僅通過雙擊執行的腳本)。 (需要chmod-ed作爲它的可執行文件)。

#!/bin/bash 

cd ~/Desktop 
rm *.eps 

cat > plot.tex << EOF 
\documentclass{standalone} 
\usepackage{pgfplots} 
\pgfplotsset{max space between ticks=50} 
\pgfplotsset{scaled ticks = false} 
\pgfplotsset{compat=1.6} 
\pgfplotsset{xticklabel style={/pgf/number format/fixed}} 
\pgfplotsset{yticklabel style={/pgf/number format/fixed}} 
\begin{document} 
\input{plot.tikz} 
\end{document} 
EOF 

pdflatex plot.tex 
pdf2ps plot.pdf 
ps2eps plot.ps 

注意該行CD〜/桌面上面應該改變,以反映該文件夾中的腳本應該從(有點蹩腳的運行,但由於搜索沒有正確沿傳需要來自程序的文件夾被執行,afaik)。

這產生eps或pdf或您喜歡的高品質圖像,以及軸和蜱的大量設置等。它都使用原生乳膠字體。

編輯: 最近我已經開始在matlab中使用patch(),然後以與上面相同的方式將它導出到tikz,結果很好。這是另一個建議!