Gnuplot:如何从二进制格式绘制多个时间序列

发布于 2025-01-08 15:44:19 字数 300 浏览 0 评论 0原文

有人可以解释一下 gnuplot 二进制格式吗?

目标是将二进制管道中的两个时间序列绘制为同一张图上的折线图。该系列是 float64 的。我使用类似的方式将它们通过管道传输:

plot "-" binary format="%float64" endian=big with lines

但是,我不明白数据应该按什么顺序排列。在上面,我可以指定 array=10,并通过管道输入 10 个数字;这有效。但是,两个系列呢?如果它们的索引不同怎么办?

提前致谢。

Would someone please elucidate the gnuplot binary format?

The goal is to plot two time series from a binary pipe as line graphs on the same graph. The series are float64's. I'm piping them in using something like:

plot "-" binary format="%float64" endian=big with lines

However, I don't understand what order the data should go in. In the above, I can specify array=10, and pipe in 10 numbers; this works. However, what about two series? And what if they are indexed differently?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

糖粟与秋泊 2025-01-15 15:44:19

您可以将其用于两个系列:

plot "-" binary format="%float64" record=10 endian=big with lines, 
     "-" binary format="%float32" record=20 endian=big with lines

我建议您使用 record 而不是 array,这样您就可以使用 using 手动指定或操作 X 轴值($0*2):1 命令。

如果它们的索引不同,例如交错,则无法向 gnuplot 指示这一点。只需将信息复制到管道两次,并用 * 忽略无用部分:

plot "-" binary format="%float64%*float32" record=20 endian=big with lines, 
     "-" binary format="%*float64%float32" record=20 endian=big with lines

无论如何,gnuplot 不允许用相同的输入数据表示两个图形,因此数据必须复制最多两次时代的。

希望有帮助!

You can use this for two series:

plot "-" binary format="%float64" record=10 endian=big with lines, 
     "-" binary format="%float32" record=20 endian=big with lines

I recommed you to use record instead of array, this way you can manually specify or operate the X axis value with the using ($0*2):1 command.

If they are indexed differently, for example interlaced, there is no way to indicate that to gnuplot. Just copy to the pipe the information twice and ignore the non-usefull part with an *:

plot "-" binary format="%float64%*float32" record=20 endian=big with lines, 
     "-" binary format="%*float64%float32" record=20 endian=big with lines

Anyway, gnuplot does not allow to represent two graphs with the same input data, so the data must be copyed twice most of the times.

Hope that helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文