2010-05-13 24 views
27

Est-il possible de tracer deux courbes, avec deux axes correspondants dans gnuplot, dont chacun a une échelle différente?Tracer deux axes dans gnuplot

Par exemple, y=x**2 et y=x**4 dans le même graphique (ils varient suffisamment pour être "inconfortables" lorsqu'ils sont tracés avec la même échelle).

+0

@Kazark - Pourriez-vous expliquer ce que fut le point de cette édition? Pour rendre la question non compatible avec les deux réponses, ou? – Rook

+0

@Idigas Il n'y avait bien sûr aucune intention d'obscurcir la question. Si vous pensez que je l'ai fait, vous pouvez bien sûr annuler l'édition. –

+0

@Kazark - Alors pourquoi l'édition alors? – Rook

Répondre

11

Il est possible de définir différentes plages pour y et y2 (les axes de droite), et même de définir indépendamment la couleur des étiquettes/tics.

Ensuite, on divise simplement la deuxième fonction par 2 (ou quelque chose d'approprié) et définir les couleurs ... comme dans cet exemple:

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

Vous pouvez avoir les axes traités automatiquement sans que vous ayez à les étendre vous et garder l'auto-mise à l'échelle:

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

Comme mes axes ont naturellement une échelle différente, j'ai trouvé 'autofreq' utile. par exemple. 'set ytics autofreq tc lt 1' –