【问题标题】:Ignore points with y=0忽略 y=0 的点
【发布时间】:2012-08-08 13:14:31
【问题描述】:

我正在绘制一个图表,我想省略所有 y=0 的点。我不知道这些结果出现在哪一行,所以我不能告诉 gnuplot 只使用一些行。

这可能吗,还是我必须编辑我的数据集(并将 y=0 替换为我范围之外的某个位置)?

【问题讨论】:

  • 首先你说“省略所有点”,然后你说“只使用一些行”。您是说要在数据集范围内省略穿过 y 轴的线吗?
  • @JAB 第一个想法(如果我有一个小数据集)是手动告诉 gnuplot 使用哪些行,但这在我的情况下是不切实际的。是的,我想要的是省略跨 y 轴的线

标签: gnuplot


【解决方案1】:

你可以很容易地做到这一点:

plot "mydataset.dat" u 1:($2 == 0 ? NaN : $2)

这里我们使用 gnuplot 三元运算符将0 的值替换为NaN。 Gnuplot 会默默地忽略 NaN,所以应该可以正常工作。

【讨论】:

  • 完美,这正是我想要的!
【解决方案2】:

这样做的优雅方法是使用:

set datafile missing

例如,你可以这样做:

set datafile missing '0'

并且 gnuplot 将跳过带有 0 符号的条目。您可以使用字符串以及 NaN 或 0.000。

【讨论】:

  • 如果有一个点 x = 0 怎么办?那不也跳过它吗?
  • 是的,这是一个示例,您希望跳过带有 0 的条目。这是一个自定义值,它告诉 gnuplot 要跳过哪个值。
  • 谢谢!在我的情况下,DHT-22 线松动,因此设置数据文件丢失“0.00”允许它跳过错误读数。
  • 赞成这两个答案。您的解决方案是全局的(这就是问题所在),但是三元运算符解决方案非常好,因为如果我们有多个数据要绘制在 Y 上,它会提供粒度。
猜你喜欢
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
相关资源
最近更新 更多