使用 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,可以接受。

郑重声明,我认为这不是一件好事。隐藏实际数据点而人为地显示偶数点是不诚实的。它会误导观众判断曲线在哪里可靠,哪里可能不可靠。