使用 gnuplot 或 python 绘图
plot using gnuplot or python
我有一个包含轨迹的 txt 文件。我如何通过 gnuplot 绘制第 3 列并用垂直线分隔轨迹。
#indexes: 0
1 -0.375E+04 0.382E+01
2 -0.375E+04 0.332E+01
3 -0.376E+04 0.353E+01
#indexes: 1
1 -0.735E+04 0.093E+01
2 -0.735E+04 0.096E+01
3 -0.735E+04 0.082E+01
4 -0.735E+04 0.094E+01
#indexes: 2
1 -0.835E+04 0.401E+01
2 -0.035E+04 0.438E+01
3 -0.365E+04 0.438E+01
我有很多索引。
照片:
这里有一个示例 shell 脚本,可用于您的示例数据。
它假定数据在文件 data
中,创建第二个 tmp 文件 /tmp/data2
,
和一张图片 /tmp/data.png
.
#!/bin/bash
max=$(awk <data '
!/^#indexes/{ if(+0>max)max = }
END {print max}')
awk <data >/tmp/data2 -vmax="$max" '
/^#indexes/ {printf "%s %s\n",i,max; next}
{ i++; }'
gnuplot <<\!
set terminal png
set output "/tmp/data.png"
plot "data" using 3 with lines linetype rgb "red",\
"/tmp/data2" using 1:2 with impulse linetype rgb "blue"
!
# eg: display /tmp/data.png
第一个 awk 找到第三个字段的最大值。第二个awk
为每个“#indexes”行创建一个数据行 "i max",其中 i
计数
数据行数,即蓝色垂直线的 x 轴值
行。
我有一个包含轨迹的 txt 文件。我如何通过 gnuplot 绘制第 3 列并用垂直线分隔轨迹。
#indexes: 0
1 -0.375E+04 0.382E+01
2 -0.375E+04 0.332E+01
3 -0.376E+04 0.353E+01
#indexes: 1
1 -0.735E+04 0.093E+01
2 -0.735E+04 0.096E+01
3 -0.735E+04 0.082E+01
4 -0.735E+04 0.094E+01
#indexes: 2
1 -0.835E+04 0.401E+01
2 -0.035E+04 0.438E+01
3 -0.365E+04 0.438E+01
我有很多索引。
照片:
这里有一个示例 shell 脚本,可用于您的示例数据。
它假定数据在文件 data
中,创建第二个 tmp 文件 /tmp/data2
,
和一张图片 /tmp/data.png
.
#!/bin/bash
max=$(awk <data '
!/^#indexes/{ if(+0>max)max = }
END {print max}')
awk <data >/tmp/data2 -vmax="$max" '
/^#indexes/ {printf "%s %s\n",i,max; next}
{ i++; }'
gnuplot <<\!
set terminal png
set output "/tmp/data.png"
plot "data" using 3 with lines linetype rgb "red",\
"/tmp/data2" using 1:2 with impulse linetype rgb "blue"
!
# eg: display /tmp/data.png
第一个 awk 找到第三个字段的最大值。第二个awk
为每个“#indexes”行创建一个数据行 "i max",其中 i
计数
数据行数,即蓝色垂直线的 x 轴值
行。