2015-12-04 3 views
1

Я пытаюсь построить карту тепла из матрицы. До сих пор, мой код выглядит следующим образом:Gnuplot heatmap из матрицы

set terminal pdf 
set output 'output.pdf' 
set autoscale yfix 
set autoscale xfix 
set palette defined (0 0 0 0.5, 1 0 0 1, 2 0 0.5 1, 3 0 1 1, 4 0.5 1 0.5, 5 1 1 0, 6 1 0.5 0, 7 1 0 0, 8 0.5 0 0) 
set pm3d map 
splot 'topologyDataActive' matrix notitle 

С помощью этих данных:

100.0 43.48 49.39 0.52 22.26 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
43.48 100.0 92.35 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
49.39 92.35 100.0 68.0 91.13 40.35 49.57 98.96 81.57 8.87 22.96 37.91 46.09 1.04 0.0 
0.52 0.0 68.0 100.0 86.26 39.48 0.0 1.04 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
22.26 0.0 91.13 86.26 100.0 95.3 41.57 23.65 12.52 0.0 0.0 0.0 0.0 0.0 0.0 
0.0 0.0 40.35 39.48 95.3 100.0 82.26 95.13 58.43 29.57 66.78 67.83 2.43 22.61 0.0 
0.0 0.0 49.57 0.0 41.57 82.26 100.0 95.48 0.0 0.0 0.0 0.0 0.0 0.0 0.0 
0.0 0.0 98.96 1.04 23.65 95.13 95.48 100.0 82.43 18.61 10.78 0.0 8.35 0.0 0.0 
0.0 0.0 81.57 0.0 12.52 58.43 0.0 82.43 100.0 80.52 80.87 11.3 82.96 24.52 1.04 
0.0 0.0 8.87 0.0 0.0 29.57 0.0 18.61 80.52 100.0 85.91 96.35 97.39 0.0 0.0 
0.0 0.0 22.96 0.0 0.0 66.78 0.0 10.78 80.87 85.91 100.0 85.91 85.91 85.91 0.52 
0.0 0.0 37.91 0.0 0.0 67.83 0.0 0.0 11.3 96.35 85.91 100.0 97.22 99.83 0.17 
0.0 0.0 46.09 0.0 0.0 2.43 0.0 8.35 82.96 97.39 85.91 97.22 100.0 99.3 1.04 
0.0 0.0 1.04 0.0 0.0 22.61 0.0 0.0 24.52 0.0 85.91 99.83 99.3 100.0 0.0 
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.04 0.0 0.52 0.17 1.04 0.0 100.0 

Который дает мне этот график: enter image description here

Пока что выглядит вполне нормально. Но, прежде всего, один столбец и одна строка отсутствуют, и я не уверен, почему. Кроме того, я проверил его с меньшим количеством данных, только это:

100.0 43.48 
43.48 100.0 

Это дает мне только один квадрат: enter image description here

Если добавить столбец и строку нулей, я получаю четыре квадрата, но цвета выключены: enter image description here

Вопрос в том, как получить правильные цвета и правильные строки столбцов и строк?

+0

[Gnuplot pm3d не строгание всех данных] (http://stackoverflow.com/q/22790143/2604213) – Christoph

+0

То же, что и комментарий к ответу ниже. Я получаю переходы между квадратами, чего я не хочу. – Patrick

+0

Нет, переходов нет. Это проблема с некоторыми читателями в формате pdf. Попробуйте, например. Firefox для просмотра pdf, и вы увидите, что вы получаете идеальный образ. – Christoph

ответ

0

Вам просто нужно расширить команду splot с with image:

splot 'topologyDataActive' matrix with image notitle 

Изображение стиль зарисовки проецирует равномерно отобранной сетку значений данных.

+0

Я пробовал это раньше, но потом получаю переходы, которые я определенно не хочу. Каждый квадрат должен иметь один цвет и не должно быть переходов между цветами. – Patrick

+0

Попробуйте обычную команду 'plot', если вам не нужна поверхность или 3D. Это дает также тепловые карты без перехода или интерполяции. – smartmic

+0

Ради завершения: с изображением решает его, но проверяйте программу просмотра Pdf, если есть переход. – Patrick

Смежные вопросы