【问题标题】:Can I set a default Y range in gnuplot?我可以在 gnuplot 中设置默认 Y 范围吗?
【发布时间】:2015-09-08 13:11:10
【问题描述】:

我的图表将根据运行时数据生成,例如用户提供的时间范围。我无法提前知道所请求的xrange 中的数据是否真的存在。

如果不是,我想显示一个空白图(按要求使用 X=时间范围,但任意 Y 比例),而不是必须处理错误消息 “所有点 y 值未定义!”

我了解到可以运行 stats(在 gnuplot 4.6 中)或其 gnuplot 4.4 等效项运行 plotset term unknown 来收集统计数据,然后在正确绘制之前手动设置一个范围。

但是,我担心在 ~200MB ASCII 输入上有效地运行 plot 两次,当我实际上不需要任何特定 Y 时,像这样扫描整个文件以确定 Y 范围似乎很浪费在我的 set xrange 指令不包含任何数据点的情况下范围。

是否有可能说服 gnuplot 只是静静地接受缺少数据点并向我显示一个空图,而不像我已经做的那样迭代数据?

【问题讨论】:

  • 很惊讶我以前找不到这个问题!
  • @Christoph:好的,如果这是答案,你可以这样发布,我会接受 =)
  • 顺便说一句:您能否将“GNUPlot”更正为“gnuplot”?该程序与GNU无关,它的名字只是一个transcription of "newplot",它与其他程序一样存在:)
  • @Christoph:哎呀,是的,np

标签: gnuplot


【解决方案1】:

错误消息来自自动缩放。只有设置固定的 yrange 才能绘制空图。例如考虑

plot 1/0

给出相同的错误消息all points y value undefined!,而命令

plot [][0:1] 1/0

生成一个空图。

不,gnuplot 没有任何在自动缩放失败时使用的默认 yrange(在 5.0 版中也没有)。我想这不是 gnuplot 的工作区,自动处理错误的用户输入并显示一个空图,无论它得到什么无效输入。

【讨论】:

  • 解决方法看起来很有希望,但唉,gnuplot 4.4 似乎在退出代码为 1 的失败绘图后立即停止。这是在脚本中输入的命令。我只需要重新调用 gnuplot 来显示一个空图(这可能没问题)
  • 是的,现在我明白了,这不适用于 4.6.3。脚本在第一个失败的绘图命令处停止。
  • 感谢您本周的所有帮助。 :)
猜你喜欢
  • 1970-01-01
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
相关资源
最近更新 更多