web-dev-qa-db-ja.com

gnuplot y1y2共通ゼロ

Y1軸とy2軸のスケールが異なるときに、gnuplotが画像の同じ高さでy1 = 0とy2 = 0を自動的に表示する簡単な方法はありますか?

私が知っている唯一の方法は、上限と下限のゼロからの比例距離がy1とy2で同じであることを確認することです。たとえば、set yrange [-1:2]およびset y2range [-10:20]は、-1が-10で、2が20であるため、機能します。

これが例です

#!/usr/bin/gnuplot -p
set term wxt #not important
unset key
set autoscale
set xrange [0:1]
set xzeroaxis #shows a dotted line where y=0 for y1.
set yrange[-1:2]
#set y2range[-10:20] #if you set an explicit range, it obviously won't work unless you plan it perfectly (like this)
#set y2range[-10:] #this does the minimum to get the plot in the frame (here -10 is the minimum, but the maximum seems to not really matter
#set y2range[:20]
#set y2range[:] #this is equivalent to just not having a set y2range line.
set xtics 0.2
set ytics 0.3
set y2tics 1
set mxtics 5
set mytics 5
set my2tics 5
set ytics nomirror #makes y1tics only show up on the left

f(x)=1
g(x)=10

plot f(x) axis x1y1 lc rgb 'blue', \
g(x) axis x1y2 lc rgb 'red';
2

必ずしも簡単ではありませんが、バージョン5.0で導入された新機能により、y2軸をy軸にリンクすることができます。たとえば、y2の範囲を設定する代わりに、yからy2への順方向および逆方向のマッピングを設定します。例えば

_set link y2 via y*10 inverse y/10
_

あなたのコード(f(x)=.9を使用)は、_(y2/10)_で不可避のy2ゼロを生成します。つまり、y == 0です。

enter image description here

2
meuh