【问题标题】:Include data points in gnuplot smooth在 gnuplot 平滑中包含数据点
【发布时间】:2012-12-04 16:44:26
【问题描述】:

数据为:

38 52.26
41 46.34
42 49.49

使用smooth 行;我可以在图形线上包含点而不绘制两次吗?

现在我使用:

plot "foo.dat" using ($0):2 smooth csplines title "foo", \
               '' using ($0):2 with points title ""

扩展简化数据集:

38     52.26
39     46.34
42     57.29
43     60.41
44     53.57
45     51.49
46     48.24
49     58.50
50     56.85
51     55.56
52     62.81
54     51.76
55     46.94
56     46.35
57     52.76
59     49.49
62     51.78
63     48.24
65     54.46
66     50.00

【问题讨论】:

  • 你可以试试with linespoints,但我不确定这是否能满足你的要求。 (我需要一个完整的数据文件来试验它)。额外的代码行有什么问题吗?换句话说,你想让你的情节看起来不同吗?如果是,你想改变什么?如果您提供有关您正在寻找的内容的更多详细信息,我们也许可以使用它。
  • @mgilson:是的with linespoints 不是我想要的,因为在给定的点间隔设置点 - 而不是在“数据点”。 “那条额外的线”没有错,但想知道是否有更清洁/更正确的方法来做到这一点。
  • 在这种情况下,我会说没有更干净的方法可以做到这一点(除了说 '' using ($0):2 with points notitle 而不是 title "" 用于第二个情节。)
  • @mgilson:好的。谢谢你。添加它作为答案,我会接受:)(Ps:“扩展简化数据集”有点愚蠢,因为第 1 列不连续。(通常是 1 2 4 7,不是1 2 3 4 5 6 7). - 现在编辑以供参考。) notile 很好 - title "" 看起来更像是一个 hack 并且在代码中是模棱两可的。

标签: plot gnuplot smooth


【解决方案1】:

这是我的做法:

...
plot "file" using 1:3 notitle with points linestyle 1, \
     "" using 1:3 notitle smooth csplines with lines linestyle 1, \
     1 / 0 title "title" with linespoints linestyle 1
...

第一个条目在图表上绘制点,没有图例。 第二个条目在图表上绘制平滑线,同样没有图例。 第三个条目仅用于图例,使用组合的线点。

如果您在平滑线上使用linespoints,它将显示使其平滑的所有点,而不仅仅是数据点。

'linestyle' 告诉 gnuplot 使用相同的样式绘制所有数据,基本上将线和点合成为线点。第三行,“linespoints”,仅用于图例,并没有在图上放置任何数据。

【讨论】:

  • 无论这是否有效,请尝试在您的代码中包含一些解释。高质量的答案不仅会给出解决方案,还会解释它是如何工作的/为什么要这样做。
猜你喜欢
  • 2021-06-15
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多