我设法创建了一些代码,这些代码将连续地将数据点从C程序发送到gnuplot,以显示时间相关的薛定谔方程的演变。这是我所做的功能,它在循环中迭代,每次更新WF[]
值:
({1}}和x[]
都是1d)
WF[]
我接下来要做的是在同一个绘图中绘制虚拟点,这些点位于数组中真实的旁边:void gnuprint(FILE *gp, double x[], int N)
{
int i;
fprintf(gp, "plot '-' with lines\n");
for (i=0; i<N; i++){fprintf(gp, "%g %g\n", x[i],WF[2*i+1]);}
fflush(gp);
fprintf(gp, "e\n");
}
,x[i]
如果我只是添加一个
WF[2*i+2]
进入循环,当&#39;用线&#39;指定时,两个图连在一起(绘图点连接起来)。使用圆点解决了这个问题,但我希望这两个图分别与线条相关联,并希望有不同的颜色。有人可以帮忙吗?
这是情节的形式我喜欢:
答案 0 :(得分:0)
通过管道传输到gnuplot的数据只能使用一次。因此,如果您想要两个具有不同颜色的图表,则必须使用'-'
两次,然后依次发送数据集,以e
分隔:
void gnuprint(FILE *gp, double x[], int N)
{
int i;
fprintf(gp, "plot '-' with lines, '-' with lines\n");
for (i=0; i<N; i++){fprintf(gp, "%g %g\n", x[i],WF[2*i+1]);}
fflush(gp);
fprintf(gp, "e\n");
for (i=0; i<N; i++){fprintf(gp, "%g %g\n", x[i],WF[2*i+2]);}
fflush(gp);
fprintf(gp, "e\n");
}