2012-01-31 2 views
44

spesso tracciare grafici in gnuplot shell, in questo modo:output.png da gnuplot non è buono come la figura dalla shell

gunuplot> plot sin(x) with linespoints pointtype 3 

e la figura presentò è grande.

Oggi, risparmio il grafico in un file .png, in questo modo:

gnuplot> set term png 
gnuplot> set output "output.png" 
gunuplot> plot sin(x) with linespoints pointtype 3 

Poi, apro output.png con eog in Ubuntu, come questo:

$ eog output.png 

ho scoperto che, il output.png visualizzato in eog non è buono come la figura tracciata nella shell di prompt.

Perché è quello? Devo modificare alcune impostazioni prima di salvare lo output.png?

PS

ho trovato che un modo intorno ad esso, in primo luogo,

set term postscript 
set output "output.ps" 

poi in guscio Linux,

$ convert output.ps output.jpg 

questo modo una sorta di risolvere il mio problema.

+0

Potresti approfondire "non buono come"? Forse con uno screenshot rispetto al png che hai creato? – Woltan

+0

di 'non buono come', voglio dire che la figura della shell di prompt viene tracciata su' wxt', e ha una buona visuale in termini di larghezza della linea. Ma la figura in 'output.png' presenta una vista diversa, cioè, la larghezza della linea è cambiata in peggio, ma posso ancora capire la figura, ma a disagio con la vista. – Alcott

+1

AFAIK ogni terminale in gnuplot ha un aspetto leggermente diverso. È possibile controllare l'output di ciascun terminale con la funzione gnuplot [test] (http://www.gnuplot.info/docs_4.2/gnuplot.html#x1-34200047). – Woltan

risposta

72

L'origine dei problemi con la qualità PNG è molto probabilmente l'antialiasing mancante nel terminale PNG di Gnuplot. Dato che non si forniscono schermate, non sono sicuro di cosa intendi quando parli di scarsa larghezza di riga, ma ecco come mi cerca (su MacOS). Questa schermata mostra l'output della produzione Aquaterm nativa di gnuplot:

A plot using gnuplot's native aquaterm output

Se creiamo un png utilizzando set term png, le linee diventano "saltellante" e pixellated:

The sine curve, plotted using the png terminal

Tuttavia, non v'è una versione del terminale png che utilizza le librerie Cairo per il rendering e che rende l'output molto più fluido e piacevole. set term pngcairo dà questo risultato:

The sine curve, plotted using the pngcairo terminal

È possibile utilizzare set terminal per verificare se questa versione del terminale è disponibile per voi. Se lo è, questo dovrebbe far risparmiare il lavoro di conversione e anche una migliore qualità dell'immagine rispetto a un JPG (che non è un formato ideale per la grafica al tratto).

+1

questo è quello di cui sto parlando, grazie. – Alcott

+4

+1 Per la bella ipotesi di jstarek! – Woltan

8

In alternativa, se si desidera disporre di immagini di qualità professionale (pronta per la pubblicazione) con gnuplot, è necessario dare un'occhiata al terminale epslatex. L'ho usato ampiamente per la mia tesi e le mie carte con risultati molto belli, praticamente nessun problema di pixelizzazione, portabilità durante la conversione di immagini in pdf e quasi tutte le funzionalità di Latex.

13

La dimensione predefinita dell'immagine gnag generata dal PNG con il terminale PNG è di 640x480 pixel.In alcuni casi questa risoluzione può portare a grafici "pixelati" che non sono belli come quelli prodotti sullo schermo con il terminale predefinito (wxt).

È possibile modificare la risoluzione dell'immagine in uscita utilizzando l'opzione formato:

set terminal png size <x,y> 

dove xey sono numeri desiderati di pixel lungo l'asse orizzontale e verticale, rispettivamente. Per esempio:

set terminal png size 1024,768 

prega di notare che, le immagini con risoluzione maggiore si tradurrà in file proporzionalmente più grandi su disco. In alternativa, puoi provare a utilizzare terminali non raster come "post eps" o "pdf", se disponibili sulla tua macchina, che possono darti immagini scalabili e (relativamente) portatili di alta qualità senza un ingombro del disco di grandi dimensioni.

+0

Questo cambia anche la dimensione relativa del carattere - la trama cambia ma le etichette, i titoli, ecc. Non lo fanno. –

1

Commento: si utilizza un file JPEG come esempio. Probabilmente non dovresti mai usare JPEG per i grafici a linee a meno che non abbiano fotografie come sfondi. JPEG semplicemente non è progettato per gestire i bordi taglienti dei disegni a linee.