2012-12-09 11 views
9

Per tutto il tempo in precedenza ho esportava figure Matlab in un formato raster (JPG, PNG)MATLAB plot l'esportazione in formato vettoriale

C'è un modo per esportare una trama da Matlab in un formato vettoriale (SVG). Ho bisogno di inserire questi grafici nel documento LaTeX.

L'unica cosa che ho trovato finora è un plugin da mathworks e la risposta da stackexchange, ma questo sembra un po 'troppo complicato

+1

Ha bisogno di essere 'svg'? Se vuoi esportare in modo che tu possa modificare la figura in un programma come Illustrator, trovo che esportare in .eps funzioni molto bene. – Jonas

+2

@SalvadorDali E cosa c'è di sbagliato con lo [strumento SVG] (http://www.mathworks.com/matlabcentral/fileexchange/7401-scalable-vector-graphics-svg-export-of-figures) dallo scambio di file MATLAB? Sembra abbastanza semplice. Basta salvare tutte le pertinenti M-file nella directory e iniziare a utilizzare 'plot2svg' ... –

+2

c'è anche [matlab2tikz] (http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz) e [matlabfrag] (http://www.mathworks.com/matlabcentral/fileexchange/21286-matlabfrag) che esporta in eps con annotazione per l'importazione in LaTeX. –

risposta

6

C'è anche matlab2tikz e matlabfrag che esporta in EPS con annotazione per l'importazione di LaTeX .

Here è un mio esempio in cui ho usato matlabfrag.

Ho discusso anche di questo con un ingegnere di Mathworks, che ha convenuto che non esiste uno strumento carino per questo tipo di cose, perché tutti vogliono fare cose diverse con esso (ho già menzionato due diversi LaTeX si avvicina). Quindi la cosa migliore da fare è giocare con diversi strumenti e vedere quale ti piace di più.

La maggior parte delle volte ho dovuto armeggiare molto con gli assi, le dimensioni dei caratteri delle etichette, ecc. Per ottenere esattamente come volevo (nonostante la regolazione di una legenda è il più grande inferno).

2

Per le mie pubblicazioni, salvi la trama come un EPS (che è vettorializzato), quindi eseguo ogni tocco finale in Inkscape. Quindi tramite Inkscape puoi esportarlo in qualcosa come SVG. Inkscape ha un sacco di strumenti utili per ripulire una trama (come la semplificazione di percorsi e ombreggiature).

Ecco come ho fatto la seguente T-s diagram:

Normal-Shock Solutions on T-s

+0

prego Non è automatico, ma mantiene la vettorizzazione mentre consente di finalizzare l'immagine. – ccook

4

mi usano comunemente entrambe le trame Matlab in documenti LaTeX. Quello che uso di solito è il formato .eps, è un formato vettoriale che Matlab può esportare piuttosto bene. Dovresti modificare la maggior parte di ciò che puoi in Matlab, con codice o manuale nella trama. Quindi vai su File -> Esporta setup e fai clic su 'expand axes to fill figure', configura quello che vuoi ed esportalo in .eps, quindi puoi importare l'immagine in qualsiasi software basato su vettori, Inkscape o Adobe Illustrator per fare le ultime correzioni se necessario . Basta lanciare l'eps in Latex, funziona perfettamente. Anche pdflatex converte solitamente EPS in PDF, quindi puoi convertirlo in PDF prima da Inkscape o Illustrator se vuoi risparmiare tempo.

0

Attualmente utilizzo il pacchetto FEX plot2svg per eseguire l'attività che si menziona.

E 'abbastanza facile da usare: dopo aver aggiunto la cartella contenente lo script per il vostro percorso MATLAB si può solo fare

plot2svg('myplot.svg',gcf); 

per salvare il dato attuale in svg. (ovviamente è possibile modificare gcf (= GetCurrentFigure) in un altro handle per salvare altre figure aperte.)

In effetti, questo è l'unico modo che ho trovato per esportare in grafici vettoriali generati dalla casella degli strumenti PDE.

0

I file .eps sono abbastanza facili da esportare e utilizzare con LaTeX. Uso una funzione in ogni progetto che formatta e salva i grafici su un progetto LaTeX. Funziona abbastanza facilmente. L''eps' nella riga seguente può essere cambiato in qualsiasi tipo di immagine Matlab.

Qualcosa di simile:

figures = sort(findobj('MenuBar','figure')); 
for ii = 1:length(figures) 
    saveas(gcf,['Figures/',num2str(ii)],'eps') 
end 
0

Ho esportato una figura MATLAB in .eps poi convertito lo stesso per .png con GIMP. Si scopre che il file .png ottenuto in questo modo è di qualità molto più elevata rispetto ai file .png ottenuti direttamente dal file di figure MATLAB esportando o salvando l'opzione. Si noti che ho utilizzato una risoluzione più elevata durante l'apertura del file .eps in GIMP. Inoltre ho selezionato "scala font per: auto" nel setup di esportazione MATLAB. Uso pdf-latex

Problemi correlati