我试图将我的gnuplot分解成堆积的图,以提高可读性。我希望马力和扭矩数据在同一个图上,其他数据分别显示在下面的堆积图上 - 全部由相同的X轴排列。有点像这样:
http://abloriginalparts.com/pb/wp_2f5b1e2e/images/img1226948967fe0ad9dc.JPG
我尝试过多色时的变化,但似乎无法正常显示。这是非多重绘图版本:
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)'
答案 0 :(得分: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
- 轴上具有不同的位数,则可能需要将ylabel
中的一个调整为offset
以与另一个调整,例如set ylabel 'ylabel' offset -1
。 offset
数字以字符宽度给出。
我也根据字符宽度设置左右边距,您可能需要调整值。对于上图的下边距和下图的上边距,我使用了小数屏幕坐标。
BTW:如果您确实需要使用位图终端,请使用pngcairo
代替png
。您最好使用例如pdfcairo
或类似的基于矢量的输出格式。