2010-05-13 12 views
27

È possibile tracciare due curve, con due assi corrispondenti in gnuplot, ognuno dei quali ha una scala diversa?Tracciamento di due assi in gnuplot

Ad esempio, y=x**2 e y=x**4 nello stesso grafico (variano abbastanza da risultare "scomodi" quando tracciati con la stessa scala).

+0

@Kazark - ti dispiacerebbe spiegare quello che è stato il punto di quella di modifica? Per rendere la domanda non compatibile con entrambe le risposte o? – Rook

+0

@Idigas Non c'era ovviamente intenzione di oscurare la domanda. Se pensi di averlo fatto, puoi ovviamente ripristinare la modifica. –

+0

@ Kazark - Allora perché la modifica allora? – Rook

risposta

11

È possibile impostare diversi intervalli per y e y2 (gli assi giusti) e persino per impostare il colore delle etichette/tic in modo indipendente.

Poi, basta dividere la seconda funzione da 2 (o qualcosa di appropriato) e impostare i colori ... come in questo esempio:

set xrange [-10:10] 
set yrange [-20:20] 
set y2range [-40:40] 

set ytics 10 nomirror tc lt 1 
set ylabel '2*x' tc lt 1 

set y2tics 20 nomirror tc lt 2 
set y2label '4*x' tc lt 2 

plot 2*x linetype 1, 4*x/2+.5 linetype 2 
40

È possibile avere gli assi gestito automaticamente, senza dover scalare loro se stessi e mantenere auto-scaling:

set terminal jpeg 
set output 'graph.jpg' 

set xrange [-10:10] 
set ytics 10 nomirror tc lt 1 
set ylabel '2*x' tc lt 1 
set y2tics 20 nomirror tc lt 2 
set y2label '4*x' tc lt 2 
plot 2*x linetype 1, 4*x linetype 2 axes x1y2 

output of the script

+3

Dato che i miei assi hanno una scala diversa, ho trovato utile 'autofreq'. per esempio. 'imposta ytics autofreq tc lt 1' –