我知道gnu plot是一个非常好的工具并且有很多功能,但我只需要它来绘制一个简单的X和Y图形,其中的数据值通过C程序的管道提供
在这里,我已经编写了一个简单的程序来绘制一些值,它在某些系统中工作正常,但它不适用于我的!!
是的,我确实在一小时前通过apt-get在我的ubuntu上安装了gnuplot,在这个程序执行后仍然没有弹出图表,请帮助我让它工作并且需要它简单..谢谢你这是我的代码:
#include<stdio.h>
int main()
{
FILE *p = popen("gnuplot -persist","w");
fprintf(p,"plot 'data.dat' with linespoints\n");
fprintf(p,"%d\t%d\n",100,200);
fprintf(p,"%d\t%d\n",200,400);
fprintf(p,"%d\t%d\n",300,600);
fprintf(p,"e\n");
fclose(p);
return 0;
}
答案 0 :(得分:0)
您需要将数据绘制到临时文件中,您需要将其指定为gnu plot以实际绘图。在临时文件中写下您的坐标,然后传递命令。
#include <stdlib.h>
#include <stdio.h>
#define COMMANDS 2
int main()
{
char * commandsForGnuplot[] = {"set title \"My Little Graph\"", "plot 'data.temp'"};
FILE * temp = fopen("data.temp", "w"); // write coordinates here.
FILE * gnuplotPipe = popen ("gnuplot -persistent", "w");
int i;
fprintf(temp, "%lf %lf \n", 100.0, 200.0); //Write the data to a temporary file
fprintf(temp, "%lf %lf \n", 200.0, 400.0);
for (i=0; i < COMMANDS; i++)
{
fprintf(gnuplotPipe, "%s \n", commandsForGnuplot[i]); //Send commands to gnuplot one by one.
}
return 0;
}
答案 1 :(得分:0)
我必须安装gnuplot-x11和gnuplot 所以我做了一个sudo apt-get install gnuplot-x11
现在使用相同的上述程序,图表明亮地弹出......
谢谢大家的帮助:))
答案 2 :(得分:0)
如果我理解正确,您需要使用特殊文件名&#34; - &#34;在你的&#34;情节&#34;命令字符串,它告诉gnuplot读取通过标准输入流传递的值:
#include<stdio.h>
int main()
{
FILE *p = popen("gnuplot -persist","w");
fprintf(p,"plot '-' with linespoints\n");
fprintf(p,"%d\t%d\n",100,200);
fprintf(p,"%d\t%d\n",200,400);
fprintf(p,"%d\t%d\n",300,600);
fprintf(p,"e\n");
fclose(p);
return 0;
}
您问题中的代码忽略了您传递的值并显示文件data.dat
的内容。