MATLAB e di alta qualità EPS figure

Sto cercando di esportare il mio MATLAB trama come di alta qualità figura. In particolare, vorrei salvarlo come un file vettoriale formato EPS, SVG.

I have tried print and saveas commands:
saveas(h,'myFileName','epsc2');
print('-r150','-depsc2', 'myFilename');

In tutte le occasioni, questo produce scarsa parti del grafico, l’asse-etichette sono infatti vettoriale. Perché MatLab fare qualche orribile rendering prima di metterlo in EPS?

Esempio di scarsa trama qui:
http://users.ox.ac.uk/~pemb2372/esempio myfilename.eps

Edit:
Vale anche la pena notare che se si utilizza un Mac visualizzazione di un file EPS da Matlab, ‘Anteprima’ app può rendere interiore grafico contenuto rasterizzati e di scarsa qualità, lasciando l’asse e le etichette vettoriale e di alta qualità. Questo è molto fuorviante, ma quando si apre detto file EPS, per esempio, Inkscape, la qualità è in realtà vettoriale e abbastanza alto.

Edit 2:
La mia università di hosting account è scaduto, quindi non è più possibile visualizzare la figura. Basti dire che ha mostrato una scarsa raster in stile trama all’interno di alta qualità, belle linee dell’asse, le zecche e le etichette.

  • Non riesco a spiegare il “perché” di Matlab è tale carenza di scorte, ma si può provare a export_fig. E ‘ disponibile su Matlab per lo Scambio di File e mi ha aiutato un sacco. Avrete anche bisogno di installare ghostscript se non l’hai già.
  • +1 per export_fig.
  • Ok grazie, cercherò in questo e riferire
InformationsquelleAutor jtromans | 2011-11-26



4 Replies
  1. 10

    Matlab in grado di esportare in pdf con una qualità migliore rispetto EPS, ma con cautele proprie di impostazione decente margini e le dimensioni dei caratteri.

    modifica:
    Esempi sono simili per l’EPS caso, come spiegato nella guida, ad esempio, di stampa:

    saveas(gcf,'filename.pdf')

    o

    print('-dpdf','filename.pdf')

    Si potrebbe anche voler dare un’occhiata al PaperSize, PaperPosition e PaperUnits proprietà di una figura (per mezzo di set e get funzioni).

    modifica: un’Altra opzione è quella di utilizzare una delle funzioni disponibili sul FileExchange come quelli citati da @user664303 di seguito. Il mio preferito per l’uso con il Lattice è matlab2tikz per cui la versione più recente può essere ottenuto da GitHub. Insieme con il esterni biblioteca di TikZ, penso che questo offre alcuni dei più bei grafici in giro.
    Probabilmente è anche meglio per ricordare che sono stato attivamente coinvolto nella matlab2tikz progetto dal 2012.

    • Siete in grado di fornire un esempio?
    • Ho aggiunto alcuni piccoli esempi, nulla di più in quanto sono praticamente identici per l’EPS caso.
    • Anche se stupido, ho pensato che potrebbe essere vale la pena condividere questo nuget di conoscenza. Parte del motivo per cui ho avuto problemi con questo problema era che la “Preview” di Mac OS X non è stato il rendering di immagini correttamente. Questo fatto sembrare ancora peggio e aggravato i miei problemi. Lezione, usare un vero e proprio editor di immagini precedenti dei file!
  2. 12

    Ho pensato di condividere il problema che avevo io, e come ho superato…

    Stavo ottenendo i risultati terribili perché avevo sbagliato renderer impostato al valore di default. Nel mio startup.m, ho avuto la zbuffer renderer abilitato. Questo è un esempio di output in formato eps.

    MATLAB e di alta qualità EPS figure

    Che ho fatto in eps uscita con: print(gcf,'-depsc2','filename.eps'). Questo eps è così, OVVIAMENTE, rasterised. Mi fa arrabbiare in matlab. Allora, ho avuto un colpo di genio – forse il mio programma di rendering predefinito zbuffer interferisce con l’immagine di processo di salvataggio. Così, aggiungendo la riga:

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

    e l’esecuzione del comando di stampa come prima, ecco l’output:

    MATLAB e di alta qualità EPS figure

    Nota che ho appena preso screenshot di eps file di output al 100%. E posso confermare che la seconda immagine è in realtà un vettore. Ecco una buona domanda/spiegazione sulla scelta di Renderer in MATLAB.

    • Grazie per la condivisione. Questo problema di base non dovrebbe essere la causa di tanto mal di testa!= per tutti!
    • Nota: dovrebbe essere '-depsc2', non 'depsc2' per il secondo argomento della print(..) comando.
    • corretto, il mio male! Ho modificato in tale correzione.
  3. 11

    Il export_fig funzione di MATLAB per lo scambio di file è ragionevolmente affidabile con precisione l’esportazione di figure eps e pdf (così come bitmap) in MATLAB.

    Il plot2svg funzione, anche dal sistema di scambio di file, permette di esportare in formato svg. Esso fornisce alcuni vantaggi aggiuntivi, come la possibilità di esportare traslucido patch oggetti in formato vettoriale.

    Un confronto di metodi di esportazione è data in questo post del blog.

    • export_fig è il boss.
  4. 0

    Ho sempre acquisire il finale grafici (quelli che dovrebbero essere inseriti in documenti e pubblicazioni) da matplotlib biblioteca di python.

    Si può scommettere su l’incredibile qualità dei grafici generati, sia .pdf e .eps formati.

Lascia un commento