2015-05-19 5 views
6

Come posso salvare il grafico in un file e anche stamparlo per visualizzarlo? Ho provato:Mostra il grafico sul display e salvalo contemporaneamente in gnuplot

#!/usr/bin/gnuplot -p 

date=system("date +%F_%T | sed 's/:/-/g'") 

set term png 
set output date.".png" 

set term x11 
set out 

plot sin(x) 

PS: C'è la possibilità di salvare il grafico che viene visualizzato nella finestra gnuplot? Ho notato che c'è il pulsante Copia negli Appunti ma non Salva.

+0

Dalla versione 5 gnuplot ha un pulsante di salvataggio per il terminale 'qt' e' wxt'. – Christoph

+0

Ciao Christoph, c'è un modo per farlo funzionare con gnuplot 4.6 patchlevel 0? –

+0

Eccoci a luglio 2017 usando la versione 5.0 patchlevel 3, e la cosa della data ha risolto un problema enorme per me. Non sapevo data +% F (ho solo bisogno della data poiché faccio solo questo a mezzanotte dopo che i dati del giorno sono stati raccolti), e sulla concatenazione in gnuplot per creare il nome del file. Tutta questa cosa per me è automatizzata usando mcron per passare il tempo al secondo. Eccellente. Ti torno il cappello. Grazie. – SDsolar

risposta

6

Se si desidera inviare una trama sia a un file e ad un terminale interattivo come x11 o wxt avete la replot dopo aver cambiato il terminale

set terminal png 
set output 'file.png' 

plot sin(x) 

set terminal x11 
set output 
replot 

Se non si desidera impostare il x11 terminale esplicitamente, ma piuttosto usare il terminale di default, qualunque essa sia, è possibile utilizzare i terminali speciali push e pop così salvare e ripristinare un terminale:

set terminal push 
set terminal pngcairo 
set output 'file.png' 
plot sin(x) 
set terminal pop 
set output 
replot 

Per rendere questo più trasparente e salvare qualsiasi immagine dopo averla tracciata su un terminale interattivo, è possibile definire uno script gnuplot export.gp che è possibile quindi call e fornire il nome del file di output come parametro.

Lo script export.gp è

set terminal push 
set terminal pngcairo 
set output '$0' 

replot 
set output 
set terminal pop 

che è quindi possibile utilizzare come

plot sin(x) 
call 'export.gp' 'test.png' 

Si noti, tuttavia, che il file esportato e la trama mostrato nella finestra interattiva sarà diverso, ma se si utilizza wxt come interattivo e pngcairo o pdfcairo come terminali di output, le probabilità sono piuttosto elevate, che le immagini visualizzate ed esportate sono molto simili.

Con gnuplot 5.0 i terminali qt e wxt offrono un pulsante "Esporta" per salvare esattamente l'immagine mostrata nella finestra come SVG, PDF o file png. Sfortunatamente, questa funzionalità non può ancora essere invocata da uno script, cioè non esiste il comando export.

+0

Grazie per le informazioni su push e pop. Non lo sapevo. Uso la rilettura per i miei grafici visibili molto. Ma questo è un modo completamente nuovo di farlo. Tuttavia, il mio continuamente riletto. Non sapevo di sostituire. Dovrò esaminarlo perché non vorrei che lo facesse continuamente come fa la rilettura. – SDsolar