如何让gnuplot不绘制多行?

时间:2015-06-06 02:12:17

标签: plot scripting gnuplot

我正在绘制一些数据,我正在绘制多条线条。应该有一行,所以我想gnuplot正试图拟合数据并以奇怪的方式加入点或某事。我如何让gnuplot绘制一个而不是多行?这是我的剧本:

set term png font 'Liberation Sans,10' size 800,200
set output "data/values.png"
set style line 1 lt 1 lw 1 lc rgb "purple" pt -1
set xlabel "Time" font 'Liberation Sans,10'
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set xtics font 'Liberation Sans,10'
set ytics font 'Liberation Sans,10'
set autoscale y
plot "data.txt" using 1:5 ls 1 smooth bezier with lines 

Output of the gnuplot script

1 个答案:

答案 0 :(得分:1)

您可以使用sort对数据进行排序。请考虑我生成的以下数据文件与您的时间格式一致:

2000-12-21 12:32:05 1
2001-11-21 12:32:05 2
2000-12-20 12:32:05 3
2000-12-20 12:32:04 4

键入sort data.txt将产生正确的顺序:

2000-12-20 12:32:04 4
2000-12-20 12:32:05 3
2000-12-21 12:32:05 1
2001-11-21 12:32:05 2

您可以使用特殊输入名称plot "< sort data.txt" ...

在gnuplot中调用此方法
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
plot "data.txt" using 1:3 w l

enter image description here

set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
plot "< sort data.txt" using 1:3 w l

enter image description here

如果您需要针对数据格式进行更强大的排序,可以查阅sort文档。