2012-06-15 1 views
11

Sto cercando di utilizzare replot con terminale png in Gnuplot.Gnuplot - Utilizzo di replot con terminale png

Se faccio la seguente ottengo due lotti su un grafico senza alcun problema:

plot sin(x)/x 
replot sin(x) 

Ora, se fare lo stesso per un tipo di terminale png il file PNG risultante contiene solo la prima trama.

set terminal png 
set output 'file.png' 
plot sin(x)/x 
replot sin(x) 

Mi manca qualcosa alla fine per ottenere la seconda trama nel mio file PNG?

risposta

14

Questa è in realtà una domanda molto buona, e il comportamento qui dipende dal terminale. Alcuni terminali (ad esempio postscript) ti daranno una nuova pagina per ogni replot. Hai un paio di soluzioni ...

Prima Opzione: È possibile effettuare la trama prima di impostare il terminale/uscita e poi ritracciare di nuovo dopo aver impostato il terminale/uscita:

plot sin(x)/x 
replot sin(x) 
set terminal png 
set output 'file.png 
replot 

Questo l'opzione è a volte conveniente se si desidera tracciare la stessa cosa su più terminali, ma raramente la uso per qualcos'altro.

Secondo (migliore) Opzione: È possibile impacchettare più grafici in un unico comando separandoli con una virgola.

set terminal png 
set output 'file.png' 
plot sin(x)/x, sin(x) 

Ho molto preferisco il secondo modo - quando in un ambiente multiplo, questo è l'unico modo per mettere grafici multipli sulla stessa trama. Se si dispone di funzioni molto lunghi per tracciare, si può rompere la linea con la linea di continuazione di gnuplot (\ alla fine della linea - Nulla è consentito dopo l'\, nemmeno gli spazi bianchi)

plot sin(x)/x with lines linecolor rgb "blue" linetype 7 lineweight 4, \ 
    sin(x),               \ 
    cos(x) 
+2

Grazie. Questi comandi devono essere inviati da uno script. Posso usare la prima opzione e fare 'impostare terminale sconosciuto' prima per evitare che la finestra si apra. La seconda opzione rende leggermente complicato ciò di cui ho bisogno. Ho davvero bisogno del modo di "sostituire". – Noel

+1

@Noel - Nessun problema. Felice di aiutare. Un'altra cosa è che la seconda soluzione sarà leggermente più efficiente. E sono molto felice di scoprire che hai imparato a conoscere il terminale "sconosciuto". È un bell'angolo di gnuplot che la maggior parte della gente non conosce. In bocca al lupo! – mgilson