2

読みやすくするために、gnuplot を積み上げプロットに分割しようとしています。馬力とトルクのデータを同じプロットに表示し、他のデータをこの下の積み上げプロットに個別に表示して、すべて同じ X 軸に並べて表示したいと思います。このような並べ替え:

http://abloriginalparts.com/pb/wp_2f5b1e2e/images/img1226948967fe0ad9dc.JPG

multiplot のバリエーションを試しましたが、正しく表示されないようです。非マルチプロット バージョンは次のとおりです。

http://i1347.photobucket.com/albums/p715/balaguru42/dyno_zpsc0213c60.png

set term png
set y2range [-5:40]
set y2tics
set ytics nomirror
set xlabel 'RPM'
set ylabel 'Torque/Power'
set y2label 'AFR/Timing/Boost/MAF'
set key bottom
InRange(x)=((x>0) ? x : 1/0)
ConvertMap(x)=(x-1) * 14.5
ConvertMapDelta(x)=x * 14.5
ConvertMaf(x)=x * 3
ConvertMafDelta(x)=x * 3
set output "output/dyno.png"
plot \
    "output/dyno.dat" using 1:(InRange($2)):3 \
        with yerrorbars title 'Torque (ft-lbs)', \
    "output/dyno.dat" using 1:(InRange($4)):5 \
        with yerrorbars title 'Power (hp)', \
    "output/dyno.dat" using 1:(InRange($6)):7 \
        with yerrorbars axes x1y2 title 'AFR', \
    "output/dyno.dat" using 1:(InRange($8)):9 \
        with yerrorbars axes x1y2 title 'Ignition (deg)', \
    "output/dyno.dat" using 1:(InRange($10)):11 \
        with yerrorbars axes x1y2 title 'Intake (deg)', \
    "output/dyno.dat" using 1:(InRange(ConvertMap($12))):(ConvertMapDelta($13)) \
        with yerrorbars axes x1y2 title 'Boost (psi)', \
    "output/dyno.dat" using 1:(InRange(ConvertMaf($16))):(ConvertMafDelta($17)) \
        with yerrorbars axes x1y2 title 'MAF (V x 3)'
4

1 に答える 1

1

最初のリンクで参照した種類のプロットを取得する方法は次のとおりです。

馬力とトルクを同じプロットに異なる軸で表示するには、次を使用します。

set ytics nomirror
set y2tics
set ylabel 'horse power (hp)'
set y2label 'torque (ft-lbs)'
set style data yerrorbars
plot 'output/dyno.dat' using 1:4:5  title 'Power (hp)',\
     '' using 1:2:3 title 'Torque (ft-lbs)'

multiplot以下の他のデータ プロットを積み重ねるには、モードが必要です。左右の余白を等しくするには、上のプロットではy2軸に目盛りとラベルがありますが、自動的に計算される代わりに明示的な余白を使用する必要があります。

set ytics nomirror
set y2tics
set ylabel 'horse power (hp)'
set y2label 'torque (ft-lbs)'
set format x ''
set xrange[1000:7000]

set style data yerrorbars

set multiplot

set lmargin 8
set rmargin 8
set tmargin 1
set bmargin at screen 0.4

plot 'output/dyno.dat' using 1:4:5  title 'Power (hp)',\
     '' using 1:2:3 title 'Torque (ft-lbs)'

unset y2tics
unset y2label
set format x
set xlabel 'RPM'
set ylabel 'AFR/Timing/Boost/MAF'

set tmargin at screen 0.38
set bmargin 4
plot 'output/dyno.dat' using 1:6:7 title 'AFR'

unset multiplot

構造体をより明確にするために、すべてのスケーリングとテスト関数を省略しました。上下のプロットの 軸の桁数が異なる場合は、の一方を で調整して他方と揃えるy必要がある場合があります。数値は文字幅で表されます。ylabeloffsetset ylabel 'ylabel' offset -1offset

文字幅に関しても左右の余白を設定しましたが、値を調整する必要がある場合があります。上のプロットの下マージンと下のプロットの上マージンには、分数のスクリーン座標を使用しました。

ところで: 本当にビットマップ端末を使用する必要がある場合は、pngcairo代わりにpng. できれば、egpdfcairoまたは同様のベクターベースの出力形式を使用する必要があります。

于 2013-10-09T22:11:04.543 に答える