在 gnuplot 中的 x 轴上添加基于模式的数字
Adding pattern based numbers on x axis in gnuplot
我只有 30 个 bin 中 y 轴的数据。我想通过在 Gnuplot 脚本中添加 x 轴来通过 Gnuplot 进行绘图。 x 轴的范围是 [-5,2],有 30 个 bin。如何在 x 轴上添加模式或基于公式的数字?或者我可以使用任何 grep 命令在数据文件本身中为 x 轴添加这种模式吗?
“file1.txt”的数据(例如)如下;
0.000000e+00
0.000000e+00
1.936836e+01
1.347826e+02
2.204809e+02
3.531409e+02
4.656366e+02
6.431357e+02
8.020624e+02
----
----
---- up to 30 bins
Gnuplot脚本大纲如下;
set style line 1 dt 1 lc rgb "black" lw 2 pt 1 ps default
set style line 2 dt 2 lc rgb "black" lw 5 pt 1 ps default
pl 'file1.txt' u ([=11=]):() w l smooth bezier ls 1 title "title1",\
'file2.txt' u ([=11=]):() w l smooth bezier ls 2 title "title2"
您可以使用函数将 x 轴值从 x 索引(默认)转换为所需值。例如,假设30条数据记录线性映射到[-5, 2],索引x值是默认的[0,1,2 ...,29]
f(x)=(x*7/29) - 5(当然这个应该是-5,不是-2)
将间隔映射到 [-5, 2]。
尝试help stats
确定数据中的记录数。 (STATS_records
)
$Data <<EOD
0.000000e+00
0.000000e+00
1.936836e+01
1.347826e+02
2.204809e+02
3.531409e+02
4.656366e+02
6.431357e+02
8.020624e+02
EOD
f(x)=(x*7/29) - 5 # map interval [0,29] to interval [-5,2] linearly
set xrange [-5:2] # only 9 values in this data set
plot $Data using (f([=10=])):() with lines # decorate as you see fit
Quick sample plot
我只有 30 个 bin 中 y 轴的数据。我想通过在 Gnuplot 脚本中添加 x 轴来通过 Gnuplot 进行绘图。 x 轴的范围是 [-5,2],有 30 个 bin。如何在 x 轴上添加模式或基于公式的数字?或者我可以使用任何 grep 命令在数据文件本身中为 x 轴添加这种模式吗?
“file1.txt”的数据(例如)如下;
0.000000e+00
0.000000e+00
1.936836e+01
1.347826e+02
2.204809e+02
3.531409e+02
4.656366e+02
6.431357e+02
8.020624e+02
----
----
---- up to 30 bins
Gnuplot脚本大纲如下;
set style line 1 dt 1 lc rgb "black" lw 2 pt 1 ps default
set style line 2 dt 2 lc rgb "black" lw 5 pt 1 ps default
pl 'file1.txt' u ([=11=]):() w l smooth bezier ls 1 title "title1",\
'file2.txt' u ([=11=]):() w l smooth bezier ls 2 title "title2"
您可以使用函数将 x 轴值从 x 索引(默认)转换为所需值。例如,假设30条数据记录线性映射到[-5, 2],索引x值是默认的[0,1,2 ...,29]
f(x)=(x*7/29) - 5(当然这个应该是-5,不是-2)
将间隔映射到 [-5, 2]。
尝试help stats
确定数据中的记录数。 (STATS_records
)
$Data <<EOD
0.000000e+00
0.000000e+00
1.936836e+01
1.347826e+02
2.204809e+02
3.531409e+02
4.656366e+02
6.431357e+02
8.020624e+02
EOD
f(x)=(x*7/29) - 5 # map interval [0,29] to interval [-5,2] linearly
set xrange [-5:2] # only 9 values in this data set
plot $Data using (f([=10=])):() with lines # decorate as you see fit
Quick sample plot