【问题标题】:Plotting n lines each second with Gnuplot使用 Gnuplot 每秒绘制 n 行
【发布时间】:2019-05-15 12:11:24
【问题描述】:

我不得不说我是 Gnuplot 的新手。 我有一个包含 3 列数据的文件,我设法用 gnuplot "name.txt" 获取 3D 图形。现在我想每秒绘制 n 行该 txt 的图形。我读到如果文件每秒更新一次是可能的,但这不是我的情况。 我有这个文件,其中包含由 c++ 程序计算的数据,并且每秒表示一个对象的位置。是否可以实时更新图表,以便您可以看到每秒绘制的 n 个点? 到目前为止,我设法做到了这个字节 Command : splot "data.txt" every ::1::10 。使用这个 Gnuplot 绘制 n 行表格 data.txt

【问题讨论】:

  • 您能提供一个minimal working example 来证明您的问题吗?
  • 完成!问题是我不太了解 Gnuplot。
  • 目前还不清楚你的目标是什么。如果第二个 1 绘制点 1-10,那么第二个 2 绘制是否包含 10 个点 11-20 或 20 个点 1-20?是文件内容保持不变,只能读取一次然后分片处理,还是需要每秒重读一次?您是否希望每组点都与前一组点区分开来(例如不同的颜色、不同的符号)?
  • 第二个图包含 20 个点。前10个点加上第二个第二个更新的十个点。文件的内容是一样的。我想在第一秒添加前 10 行数据,然后在第二秒添加其他 10 行。
  • 我使用的文件没有及时改变

标签: gnuplot


【解决方案1】:

这是一种可能性:

  do for [N=10:*:10] {
    splot 'name.txt' every 1::1::N using 1:2:3 with points
    pause 1.0
  }

【讨论】:

  • 好吧,这行得通,但没有达到我的预期。我有这个包含 3 列数据的文件,这些是 3D 点,我想绘制它们
  • 糟糕,抱歉。那应该是splot,而不是plot。编辑以显示等效的 3D。
  • 循环直到数据用完。如“我不知道最大值是多少 - 一直走到尽头”。
  • 我做了:为 [N=1:1000:1] { splot 'data.txt' every 1::1::N using 1:2:3 with points pause 0.1 }跨度>
  • 但是该命令会为每个点而不是每 10 个点生成一个新图。至于“*”,我认为您是正确的,在这种情况下,程序开始打印警告消息,而不是在数据用完时完全停止。这是一个错误。
猜你喜欢
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 2021-02-06
  • 2012-03-22
  • 1970-01-01
  • 2018-01-06
  • 2020-08-26
  • 1970-01-01
相关资源
最近更新 更多