2013-06-17 5 views
8

Attualmente, faccio qualcosa di simile al seguente:Come posso inviare .png plot allo stdout in gnuplot?

set term png 
set output 'file.png' 

Ma hardcoding nome del file nello script è abbastanza inflessibile. C'è un modo per dire a gnuplot di emettere il file immagine sullo stdout, quindi sarò in grado di reindirizzare il suo output dove necessario?

risposta

11

Se desidera inviare il .png sullo standard output, basta non impostare l'uscita:

#!/usr/bin/env gnuplot 
set term png 
plot x 

quindi eseguire lo script

./plot.plt > mypng.png 

Credo che l'involucro bash ha più senso per la maggior parte degli scopi, ma questo è potenzialmente utile pure.

+0

Io, d'altra parte, credo che il wrapper bash sia quasi inutile per la maggior parte degli scopi. Questo è esattamente quello che stavo cercando, grazie! – Rogach

+2

Per le altre persone che potrebbero avere lo stesso problema di me e stanno vedendo 'gnuplot>' nei loro output: non eseguire 'gnuplot -' quando si impartiscono comandi su stdin, basta passare a' gnuplot' senza '-'. –

1

inserire lo script gnuplot all'interno di uno script e utilizzare un here document:

#!/bin/bash 
gnuplot << EOF 
set term png 
set output "$1.png" 
plot "$1.dat" 
EOF 

Ora richiamare lo script, dicono plot.sh, specificando il prefisso per file di output e di dati come argomento: bash plot.sh file.