gnuplot复杂堆积图

巴拉·桑班丹

我正在尝试将gnuplot分解为一个堆叠图,以提高可读性。我希望马力和扭矩数据在同一图上,而其他数据分别显示在此下方的堆叠图上,所有数据都由同一X轴对齐。有点像这样:

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

我尝试了多图的变体,但似乎无法正确显示。这是nonmultiplot版本:

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)'
克里斯多夫

这是获取第一个链接所引用的图样的方式。

要在同一图上具有不同轴的马力和扭矩,请使用:

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轴上具有tic和标签,但您必须使用显式边距而不是自动计算的边距:

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轴上具有不同的数字位数,则可能需要用来适应ylabels中的一个,offset以便与另一个对齐,例如set ylabel 'ylabel' offset -1offset数字是根据字符宽度给出的。

我还根据字符宽度设置了左右边距,您可能需要调整这些值。对于上部图的底部边缘和下部图的顶部边缘,我使用了分数屏幕坐标。

顺便说一句:如果您确实需要使用位图终端,请使用pngcairo代替png优选地,您应该使用例如pdfcairo或类似的基于矢量的输出格式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章