Мне удалось создать код, который будет непрерывно отправлять точки данных из программы C в gnuplot, чтобы показать эволюцию зависимого от времени уравнения Шредингера. Это функция, я сделал, который повторяется в цикле, который обновляет WF[]
каждое значение: (Оба x[]
и WF[]
являются 1d)Данные о трубопроводах в Gnuplot от C
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]
Если я просто просто добавить
fprintf(gp, "%g %g\n", x[i],WF[2*i+2]); //The imaginary values
в сортире p, когда «с указанными строками», два графика соединяются вместе (точки сюжета соединяются). Использование точек решает это, но я хотел бы, чтобы оба графика были отдельно связаны с линиями и, надеюсь, разными цветами. Может кто-нибудь помочь?
Это форма сюжета я хотел бы:
решаемые и прекрасно работает, спасибо много –
Вы также знаете, могу ли я рисовать в одно и то же окно gnuplot после каждой команды, а не закрывать и открывать новое окно каждый раз? –
Это зависит от вашей общей структуры программы. Если вы вызываете только функцию 'gnuprint', она должна всегда отображаться в том же окне. – Christoph