Тепловая карта данных 4х1000 в гнуплоте - PullRequest
0 голосов
/ 26 марта 2019

У меня есть данные 1000 x 4 с плавающими значениями между [0, 100].Как я могу создать карту сравнения для этих данных в gnuplot?

Я попробовал демо-версию примера Heatmap на Gnuplot.Однако я не смог найти ответ на него.

Данные выглядят так:

enter image description here

И что я хочу показатьсравнение каждой колонки (отсортировано) в тепловой карте.

Например:

enter image description here

1 Ответ

2 голосов
/ 28 марта 2019

Насколько я понимаю, вы хотите обрабатывать столбцы индивидуально, а не обрабатывать все как матрицу.Следующие команды gnuplot сделают это:

unset xtics
unset ytics
unset border
set bmargin screen 0.1
set key samplen -1
set style fill solid
set palette defined (0 "forest-green", 1 "goldenrod")

plot for [col=1:4] 'data' \
     using (col):0:(0.45):(1.0):col with boxxy \
     lc palette title columnhead(col) at first col, graph -0.05

Примечания:

  • В стиле boxxy ожидается ввод столбца x: y: delta_x: delta_y [: необязательный цвет]
  • Мы даем ему номер столбца для x, номер строки для y, а также ширину и высоту постоянного размера.Вы можете отрегулировать ширину, чтобы уменьшить зазор между столбцами.
  • Нижнее поле увеличивается, чтобы оставить место для меток
  • Заголовки размещаются индивидуально под графиком, а не в ключевом поле

Вы упомянули сортировку, но не совсем точно, что вы хотите.Если идея состоит в том, чтобы отсортировать значения в каждом столбце перед построением графика, я думаю, что это нужно будет сделать, вызвав системную команду.В Linux это можно сделать, заменив первую строку команды plot на что-то вроде:

plot for [col=1:4] sprintf("<sort -n -k %d data",col) \
    etc 

enter image description here

...