用gnuplot在单条曲线中绘制多个(x,y)坐标
你好,我想在一个图表上画多个 (x,y) 坐标。假设我有一个数据文件,里面的内容像这样:
x y
0.0 0.5
0.12 0.1
0.16 0.4
0.2 0.35
0.31 0.8
0.34 0.6
0.38 1.0
0.46 0.2
0.51 0.7
0.7 0.9
我能在这个文件里再加一些数据,比如:
x y x1 y1
0.0 0.5 0.04 0.7
0.12 0.1 0.08 0.74
0.16 0.4 0.12 0.85
0.2 0.35 0.16 0.9
0.31 0.8 0.2 0.53
0.34 0.6 0.24 0.31
0.38 1.0 0.28 0.87
0.46 0.2 0.32 0.20
0.51 0.7 0.36 0.45
0.7 0.9 0.4 0.64
然后在 gnuplot 上画出这个图,(x,y) 和 (x1,y1) 都在同一条曲线上?谢谢。
1 个回答
2
据我所知,gnuplot只能绘制列格式的数据。也就是说,你需要在绘图之前先把数据转置,像这样:
x 0.000000 y 0.500000 x 0.120000 y 0.100000 ...
x1 0.040000 y1 0.700000 x1 0.080000 y1 0.740000 ...
然后用 plot data us 1:2, data us 3:4, data us 5:6
来绘图。
要转置数据,你可以选择修改你的程序,让它以这种方式输出数据,或者使用下面的awk脚本:
awk '{for (i=1;i<=NF;i++) arr[NR,i]=$i;} END{for (i=1;i<=NF;i=i+2) {for (j=1;j<=NR;j++) {printf "%f %f ",arr[j,i],arr[j,i+1]} print ""}}' datafile