使用Gnuplot绘制单列二进制文件的图形

3
我该如何使用gnuplot绘制单列二进制文件?
这是我正在使用的gnuplot命令: plot "file.bin" binary format="%float" u ($0+1):1 every ::0::999 但是,我得到的是沿着垂直线 x = 0 的所有点。
我在一个C程序中创建了这个二进制文件: write(fdesc, bin_data, tot_size * sizeof(double)); 谢谢。

你试过简单地绘制plot "file.bin" binary来看看是否有效吗? - Christoph
是的,我已经尝试过了,但没有成功。它显示“读取零宽度的网格”。 - Arraval
1个回答

3

如果您将双精度浮点数写入二进制文件,则必须从gnuplot中读取双精度浮点数:

plot "file.bin" binary format="%double" u 0:1 every ::::999

作为更完整的示例,考虑以下C代码片段simple.c
#include <unistd.h>    
int main(int argc, char* argv[])
{
    const int N = 128;
    double values[N];
    int i;
    for (i = 0; i < N; i++)
    values[i] = i * i;

    write(STDOUT_FILENO, values, N*sizeof(double));
}

使用gcc simple.c编译,打开gnuplot并输入以下内容:

plot '< ./a.out' binary format='%double' using 0:1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接