Почему моя тепловая карта пуста (белая)?

Я хочу нарисовать карту тепла, у меня есть 2d массив, и я последовал этому ответу: https://stackoverflow.com/a/32459287/2370139
За исключением того, что я использую gnuplot в c ++, и я удалил «неоднородный», поскольку первая строка и столбцы являются обычными значениями, а не галочками.

Gnuplot gp;
gp << "set autoscale xfix \n";
gp << "set autoscale yfix \n";
gp << "set autoscale cbfix \n";
gp << "plot '-' matrix with image notitle\n";
gp.send2d(pmat);
gp.flush();

pmat — это двумерный массив размером 50 * 50. Он заполняется значениями с плавающей точкой от 0 до 1.
Это делает абсолютно белую сетку, в чем может быть проблема?

ПРИМЕЧАНИЕ. Приведенные выше команды работают нормально при использовании в обычном терминале gnuplot с текстовым файлом, например

0.5 0.3 0.3
0.2 0.4 0.6
0.2 0.8 1

так что проблема должна исходить от моего использования API C ++

-2

Решение

Если gnuplot-iostream не имеет встроенной поддержки двумерных данных в матричном формате, вы можете легко реализовать это в своем коде. Что-то вроде

gp << "plot '-' matrix with image notitle\n";
for (int i = 0; i < 50; ++i) {
for (int j = 0; j < 50; ++j)
gp << pmat[i][j] << "\t";
gp << "\n";
}
gp.flush();

(не проверено) должно работать.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]