【问题标题】:Evenly spaced points along a line while Plotting CSV data with gnuplot使用 gnuplot 绘制 CSV 数据时沿一条线均匀分布的点
【发布时间】:2022-02-06 02:17:54
【问题描述】:

我想用 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 个点。因为我的数值解非常好 :-) 你只看到一条线,所以我想在一条曲线上有标记。但是这些点应该是等距分布的(目前的分布只是由于解析解的性质)。

【问题讨论】:

  • 欢迎来到 StackOverflow!你试过什么了?你有一些代码或一些图表吗?那么,您是在问关于等距采样值的插值吗?
  • 是的,就是这样。我认为这无论如何都是在内部完成的(这就是为什么你会看到虚线图,不像 Excel,如果数据靠得太近,你看不到虚线)。我已经编辑了我的问题并附上了一个示例图。
  • 你是指沿路径还是沿x轴插值?
  • 我想到的路径
  • 几年前,我在这里问过关于使用 gnuplot (stackoverflow.com/q/54362441/7295599) 重新采样(沿 x 轴)的问题......仍然没有好的答案。 gnuplot 希望成为一个绘图工具,因此数据准备功能相当有限。我相信 gnuplot 会有一些方法,但很可能会是一个麻烦的解决方法。此外,如果您想要“沿着路径”,如果您想要“视觉上”等距点,则需要考虑不同的 x 和 y 比例。

标签: csv gnuplot


【解决方案1】:

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

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

【讨论】:

  • 非常感谢,这正是我想要的。关于您对内插值可信度有问题的反对意见:这里没有什么不光彩的地方。它既不是测量数据也不是模拟数据。分布不均只有技术原因。
  • 太棒了。请将其标记为“已接受”,以便它显示为已回答的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 2020-05-08
  • 1970-01-01
相关资源
最近更新 更多