0

我在使用 gnuplot 时遇到了这个问题,我不知道可能出了什么问题……我试图通过从 dat 文件中传递值来创建直方图:

machine1    1.04    1.11     1.09
machine2    0.12    0.16     0.126
machine3    1.478   1.358    1.306

使用这个 .plt 文件:

set terminal x11 persist
set title "Average Load of current machines"
set style data linespoints
set ylabel "load"
set xlabel "machines"
set yrange [0:1.5]

plot "test.dat" using 2:xticlabel(1) w lp lw 2 t "1 min", \
     "" using 3  w lp lw 2 t "5 min", \
     "" using 4  w lp lw 2 t "15 min"

但不幸的是,我只得到第一行的数据(作为点),省略了 dat 文件的其余行......

gnuplot直方图pic1

另一方面,如果我将 .dat 文件中的数据复制到 .plt 文件中,如下所示:

set terminal x11 persist
set title "Average Load of current machines"
set style data linespoints
set ylabel "load"
set xlabel "machines"
set yrange [0:1.5]

plot "-" using 2:xticlabel(1) w lp lw 2 t "1 min", \
     "" using 3  w lp lw 2 t "5 min", \
     "" using 4  w lp lw 2 t "15 min"
machine1    1.04    1.11     1.09
machine2    0.12    0.16     0.126
machine3    1.478   1.358    1.306

我得到了所有机器的正确结果,但仅适用于省略其余列的第一列......

gnuplot直方图图片2

有什么建议可能是错的吗?

编辑/解决

好吧,问题出在我构建 dat 文件的 bash 上……每次我想添加新的数据行时,我都会传递一个 \r 字符。我不知道这对 gnuplot 不友好......经过几天的困扰,我意识到......

PS谢谢大家的意见。我希望这也能帮助其他新手,以免他们陷入同样的​​错误......

4

1 回答 1

1

第二个版本不起作用,因为必须重复内联数据(不幸的是)......

set terminal x11 persist
set title "Average Load of current machines"
set style data linespoints
set ylabel "load"
set xlabel "machines"
set yrange [0:1.5]

plot "-" using 2:xticlabel(1) w lp lw 2 t "1 min", \
     "" using 3  w lp lw 2 t "5 min", \
     "" using 4  w lp lw 2 t "15 min"
machine1    1.04    1.11     1.09
machine2    0.12    0.16     0.126
machine3    1.478   1.358    1.306
e
machine1    1.04    1.11     1.09
machine2    0.12    0.16     0.126
machine3    1.478   1.358    1.306 
e
machine1    1.04    1.11     1.09
machine2    0.12    0.16     0.126
machine3    1.478   1.358    1.306
e

第一个版本在我的电脑上运行,所以我不知道那个有什么问题......

于 2012-04-27T12:54:50.683 回答