Я сделал функцию, которая успешно трубы данные из моей программы C до GNUPLOT:поверхности участка трубопровода к GNUPLOT от C
void gnuprintabs(FILE *gp,double **RE,double **IM, double x[], int N)
{
int i,j;
fprintf(gp, "splot '-'\n");
for (i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
fprintf(gp, "%g %g %g\n", x[i],x[j],sqrt(RE[i][j]*RE[i][j]+IM[i][j]*IM[i][j]));
}
}
fflush(gp);
fprintf(gp, "e\n");
}
Сама функция в цикле посредством 2D-RE и IM массивы непрерывно обновлено.
Мой вопрос: как я могу сделать этот график сплошной поверхностью, а не одиночными точками или линиями?
Если я скажу GNUPLOT к set pm3d\n
, он возвращает ошибку:
single isoline < scan > is not enough for pm3d plot
Есть ли способ обойти это?
Благодаря
Обратите внимание, что алгоритм gnuplot pm3d на самом деле более общий, чем этот. Значения «x» внутри блока не все должны быть одинаковыми (это было огромным откровением для меня, когда я понял это). Это на самом деле рисование quadrilaterals на основе соответствия углов от N и N + 1 линии в первом блоке с N и N + 1 в следующем блоке. – mgilson
@mgilson Я знаю, но тогда вы не можете использовать формат 'matrix', о котором я говорю. – Christoph
Да. Комментарий не был расценен как критика на этот пост/ответ. Просто обратите внимание на будущих посетителей о том, как совершенно потрясающий pm3d. – mgilson