每次调试都先从C中抓数据,然后再拷贝到py或者matlab中绘图,太麻烦,为了提高效率,可以考虑C调用gnuplot的方案(当然C调用py的matplotlib应该也是可以的)
废话不多说,直接上代码:
c
#include <stdio.h>
int main() {
FILE *gp;
// gp = popen("gnuplot", "w"); // 本程序退出后, gnuplot也退出
gp = popen("gnuplot -persist", "w"); // 使用-persist参数后, 即使程序退出, gnuplot也不会退出, 但无法再进行交互式操作
if (gp == NULL)
{
return -1;
}
fprintf(gp, "set datafile separator comma\n"); // 若一行的数据分割符为逗号, 则使用此命令, 分割符为空格时, 则不需要此命令
fprintf(gp, "set xlabel 'X'\n");
fprintf(gp, "set ylabel 'Y'\n");
fprintf(gp, "set zlabel 'Z'\n");
fprintf(gp, "set title 'Test'\n");
fprintf(gp, "splot 'data.txt'\n");
fflush(gp);
getchar();
fprintf(gp, "exit\n");
pclose(gp);
return 0;
}