これを達成する方法は次のとおりです。最初にスクリプトと結果を示し、後で手順を説明します。
reset
set xtics nomirror
set x2tics
set autoscale xfix
set autoscale x2fix
set xlabel 'P'
set ylabel 'T'
set x2label 'V'
plot 'data.txt' using 3:2 with linespoints ps 2 lw 2 title 'T wrt P', \
'' using 3:2:x2tic(1) axes x2y1 with points ps 2 lw 2 title 'T wrt V'
最初にT wrt P on をプロットしx1y1
ます。その後、 T wrt Vをプロットし、これにPx2y1
の範囲と目盛りの位置を使用しますが、Vの値を x2 軸の目盛りラベルとして使用します。これにより、 Pの線形スケールが得られ、それに応じてVが適応されます。
これを機能させるには、 と を使用する必要がありset autoscale xfix
ますset autoscale x2fix
。これは正確な範囲を使用し、軸を次の主要な目盛に拡張しません。これは、x 軸に対してのみ行われますが、カスタムの目盛を持つ x2 軸に対しては行われません。
もちろん、このプロセスを逆にして、 Vに線形スケールを使用し、 P目盛を適合させることもできます。いずれにせよ、xtic()
またはで配置されるカスタム ティックの場合x2tic
、数値はデータ ファイルでフォーマットされているように使用されます。
reset
set xtics nomirror
set x2tics 1
set autoscale xfix
set autoscale x2fix
set xlabel 'P'
set ylabel 'T'
set x2label 'V'
plot 'data.txt' using 1:2:xtic(3) with linespoints ps 2 lw 2 title 'T wrt P', \
'' using 1:2 axes x2y1 with points ps 2 lw 2 title 'T wrt V'
ここでは、実際に一致していることを示すために、両方のプロット ラインの点が示されています。
1 つのコマンドで xtics のみを生成するには、-value を使用できNaN
ますy
。また、カスタム ティックの一部のみをラベルにする必要がある場合は、x2tic
呼び出しで適切なチェックが必要です。ここでは、すべての偶数行にのみラベルを設定します$0
。これは現在の行番号で、 から始まり0
ます):
reset
set xtics nomirror
set x2tics
set autoscale xfix
set autoscale x2fix
set xlabel 'P'
set ylabel 'T'
set x2label 'V'
plot 'data.txt' using 3:2 with linespoints ps 2 lw 2 title 'T wrt P', \
'' using 3:(NaN):x2tic((int($0) % 2) ? '' : stringcolumn(1)) axes x2y1 t ''
結果: