【问题标题】:how to display a specific value a(col#,row#) on a gnuplot chart?如何在 gnuplot 图表上显示特定值 a(col#,row#)?
【发布时间】:2012-07-19 11:43:07
【问题描述】:

我意识到 gnuplot 4.6 没有特定的数据点寻址能力,我必须使用脚本来提取给定值并将其存储为变量(例如,在第 4 列的第 7 列中提取一个值)从最后一行开始,我可以简单地使用'tail -4 data.out | head -1 | awk '{print $7}')。如何将该值存储/分配为 gnuplot 变量,然后使用 set label 1 sprintf("a = %3.4f",a) at x,y 命令将其显示在图表上?

【问题讨论】:

  • 重新标记为 windowswindows-xp,因为它们似乎与此处相关。

标签: windows windows-xp gnuplot


【解决方案1】:

Gnuplot 理解 backtics 和你的 shell 一样。因此,要获取数据文件中的特定值:

a=`tail -4 data.dat | head -1 | awk '{print $7}'`
set label 1 sprintf("a=%3.4f",a) at x,y

【讨论】:

  • 恐怕这个有希望的答案对于 Linux 版本的 gnuplot 是正确的,但是在 Windows XP 下使用时,我收到错误消息 gnuplot> a= ^ "6p.gp",第 15 行:需要常量表达式
  • @user1537723 -- 整行是什么样的(在 gnuplot 中?)您的 shell 命令可能没有达到您的预期。 (如果 gnuplot 没有正确处理 backtics,这似乎是一条奇怪的错误消息)——当然,我一点也不熟悉如何在 Windows 上构建 shell 命令......
  • 在 Windows XP 32 位上使用此语法不走运... 命令 'a = system "tail -3 data.out"' 生成一条错误消息,表明不支持系统评估通过 MS-Windows 32 位。但是,gnuplot> !tail -4 data.out |头-1 | awk '{打印 $7}' | sed 's/,//' | pg 显示我想显示的值,所以问题是如何将它传递给内部 gnuplot 变量。我试过a=,括号内的重定向或双引号等,但没有运气。它看起来像是一个特定于 Windows 的问题...
  • @user1537723 你能用“shell重定向”来绘制一些东西吗(例如plot "< awk '{print $2,$3}' datafile.dat" u 1:2?你的gnuplot可能不是在支持管道的情况下构建的......(这是有道理的,因为据我所知, windows 没有popen)。
  • 非常感谢!我尝试过重定向,但无济于事...... awk 表达式在命令行上有效,但 gnuplot 中的重定向无效。嘿,那里一定有黑客! :-)
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 2022-01-15
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多