Heatmap из файла

Хитмап для генных последовательностей

Heatmap - карта интенсивностей - популярный в сети способ представления данных. Суть его проста: есть набор чисел, сопоставляем им некоторые цвета, рисуем и получаем визуализированную красоту. Кстати, правильно будет именно "heatmap", а не "hitmap", как многие думают.

На сайтах наиболее частое применение heatmap - карта посетителей. Например, есть уже готовая картинка России, с размеченными областями и городами, и ее красят в разные цвета в соответствии с количеством посещений из них.

Есть несколько способов сопоставления цвета:

  1. Выбираем один какой-нибудь цвет. Наименьшему значению m приписываем интенсивность 0, наибольшему M - 255. Остальным значениям соответственно по формуле 255*(x-m)/(M-m) В итоге самые маленькие числа будут выглядеть темнее. Если поменяем местами m и M в формуле, то темным будут изображаться более высокие значения.
  2. Выбираем два цвета, один для наибольших значений, другой для наименьших. Формулами устраиваем градиент перехода одного цвета в другой.

Лично мне потребовалось сделать обычный прямоугольный цветной кваратик с данными из файла. Матрицу визуализировать, в общем. Можно было заморочиться и написать генерацию картинки на C++, и это не сложно тем, кто привык работать с изображениями. Но проще оказалось сделать это на perl, нарисовать в браузере и из скриншота вырезать картинку. Кстати говоря, рисуется все табличкой с ячейками разных цветов.

А потом подумалось сделать из этого web-инструмент, который может еще кому-то пригодиться. К тому же, полистав выдачу google, я не увидела подходящих мне сервисов.

Heatmap

Итак, выберите файл с матрицей (необязательно квадратной) чисел. Разделитель столбцов определяется автоматически. Если числа в файле дробные - целую и дробную часть должна разделять точка. Разделитель строк обычный - перевод строки.
В новом окне откроется html-страничка с... в общем сами увидите :)

Выберите файл:

В прикрепленном текстовом файле находится пример матрицы 36 на 55 с разделителем-табуляцией. Можете скачать и использовать его в качестве теста.

Прикрепленный файлРазмер
matrix.txt17.41 кб