Итак, на этот раз у меня есть матрица под названием zvalue[10][10]
, и я хотел бы нарисовать карту pm3d
, с нормальными сетками x-y
, а также с zvalue[i][j]
значением (i,j)
.Как передать gnuplot матрицу и splot pm3d карту в c?
В Gnuplot, я просто использую:
set pm3d map
splot zvalue matrix using 1:2:3 with pm3d
И в C++
GNUPLOT труб, я могу использовать функцию gp.file1d()
для достижения этой цели.
gp << "splot" << gp.file1d(matrix) << "matrix using 2:1:3" << "with pm3d\n"
Но сейчас я нахожусь в C GNUPLOT трубы, конечно, я могу записать матрицу в файл с именем zvalue.txt
, и используйте следующее:
fprintf(gp, "splot \"zvalue.txt\" matrix using 1:2:3 with pm3d\n")
Но есть другой путь? Я пытался @ предложение Христа, когда я имею дело с нормальным SPLOT с матрицей, то есть сделать что-то вроде:
int main(void)
{
FILE *gp = popen(GNUPLOT, "w");
fprintf(gp, "splot '-' matrix using 1:2:3\n");
int i, j;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++)
fprintf(gp, "%d ", i*j);
fprintf(gp, "\n");
}
pclose(gp);
return 0;
}
Но когда это pm3d
, это не очень хорошо работает. Я также пробовал с splot
по пунктам, который хорошо работает для номенклатурного сплита с матрицей, но здесь с pm3d
ничего не работает.
Пожалуйста, найдите время и прочитайте http://stackoverflow.com/help/asking, чтобы начать с того, как работает stackoverflow. Особенно, как выглядит ваш нерабочий (но полный) пример с pm3d. И, пожалуйста, посмотрите также http://stackoverflow.com/editing-help, чтобы узнать, как правильно форматировать вопрос. Это облегчает другим читать ваш вопрос и помогать. – Christoph
Спасибо за напоминание, я посмотрю. – Robin