使用 gnuplot 绘制 CSV 数据时沿直线均匀分布的点
Evenly spaced points along a line while Plotting CSV data with gnuplot
我想用 gnuplot 绘制一个 csv 文件。我不想使用直线,而是使用沿曲线路径均匀分布的点。但是,csv 文件中的数据分布不均,例如像这样
x,p
0,2
1,4
1.1,4.2
1.2,4.4
2.8,7.6
2.85,7.7
4,10
应该可以实现,但是怎么做呢?
这是一个示例图,其中我绘制了每个第 n 个点。因为我的数值解非常好 :-) 你只能看到一条线,所以我想在一条曲线上做标记。但是点应该是等距分布的(目前的分布只是由于解析解的性质)。
在gnuplot (5.5) 的开发版本中,这完全可以按照要求完成。 smooth path
做了你所期望的,pn 7
告诉它正好放置 7 个均匀分布的点。
$DATA << EOD
0,2
1,4
1.1,4.2
1.2,4.4
2.8,7.6
2.85,7.7
4,10
EOD
set log y
set key top left
set datafile separator comma
plot $DATA smooth path with lp pn 7 title "smooth path pn 7", \
$DATA with points pt 6 ps 2 title "original points"
当前版本 5.4 不提供 smooth path
,但如果您的数据点足够接近位于平滑曲线上的其他平滑选项之一,例如smooth mcs
,可以接受。
郑重声明,我认为这不是一件好事。隐藏实际数据点而人为地显示偶数点是不诚实的。它会误导观众判断曲线在哪里可靠,哪里可能不可靠。
我想用 gnuplot 绘制一个 csv 文件。我不想使用直线,而是使用沿曲线路径均匀分布的点。但是,csv 文件中的数据分布不均,例如像这样
x,p
0,2
1,4
1.1,4.2
1.2,4.4
2.8,7.6
2.85,7.7
4,10
应该可以实现,但是怎么做呢?
这是一个示例图,其中我绘制了每个第 n 个点。因为我的数值解非常好 :-) 你只能看到一条线,所以我想在一条曲线上做标记。但是点应该是等距分布的(目前的分布只是由于解析解的性质)。
在gnuplot (5.5) 的开发版本中,这完全可以按照要求完成。 smooth path
做了你所期望的,pn 7
告诉它正好放置 7 个均匀分布的点。
$DATA << EOD
0,2
1,4
1.1,4.2
1.2,4.4
2.8,7.6
2.85,7.7
4,10
EOD
set log y
set key top left
set datafile separator comma
plot $DATA smooth path with lp pn 7 title "smooth path pn 7", \
$DATA with points pt 6 ps 2 title "original points"
当前版本 5.4 不提供 smooth path
,但如果您的数据点足够接近位于平滑曲线上的其他平滑选项之一,例如smooth mcs
,可以接受。
郑重声明,我认为这不是一件好事。隐藏实际数据点而人为地显示偶数点是不诚实的。它会误导观众判断曲线在哪里可靠,哪里可能不可靠。