Pull to refresh

Обзор Circos: круг — это хорошо

Reading time3 min
Views6.1K
Circos — открытый программный пакет для визуализации данных и информации. Он визуализирует данные в форме круга, что идеально подходит для изучения связей между объектами. Также, это просто красиво.



Наверняка, каждому из вас хотя бы раз приходилось представлять информацию в графическом виде. И наверняка казалось, что на обычный график или диаграмму помещается слишком мало информации, а ведь хочется рассказать и показать так много. Особенно эта проблема (нехватки места) проявляется в тот момент, когда нужно показать связи одного объекта с другим, их схожести и различия. И тут нам на помощь приходит … круг.

Pie Chart


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

Имя Количество акций
Ваня 2345
Петя 3454
Вова 5989




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

Circos


Circos же легко справляется с такой задачей. Продемонстрирую преимущества их «кругового» подхода на следующем простом примере — пусть у нас есть три вида автомобилей (Small, Medium, Executive) и три страны где они продавались (A, B, C). Количество проданных автомобилей в зависимости от страны можно описать, например, такой таблицей:
Тип автомобиля \ Страна A B C
Small 120 300 340
Medium 150 100 45
Executive 30 15 25

А вот в такую красочную картинку можно автоматически превратить эти цифры при помощи Circos:



По периметру круга располагаются метки наших столбцов и строк. Слева мы видим страны, а справа классы машин. Цвет, привязанный к каждой из меток, изображен на внутренней (самой толстой) окружности, так, например, стране А соответствует красный цвет, а классу машин Small — фиолетовый. Длина окружности пропорциональна доле данной страны среди всех стран или доле данного класса машин среди всех. Полоски, идущие через центр круга, демонстрируют в какой пропорции машины определенного класса покупались в какой стране, так по фиолетовым полосам видно, что машины малого класса практически одинаково популярны в странах В и С, а в стране А закупаются в два с лишним раза меньше.

Для удобства, все полосы в правом полукруге начинаются с небольшого участка, покрашенного в тот цвет, куда эти полосы ведут. На диаграмме нанесены как абсолютная (в штуках машин, внутренняя окружность), так и относительная (в процентах, внешняя окружность) шкалы, позволяющие понять как долю различных классов машин в какой-то стране, так и распределение каждого класса по всем странам.

Конечно, рассмотренный пример является искуственным и может показаться, что Circos создан исключительно для развлекательных целей, однако это не так. Circos создавался как визуализатор для сложных данных в биоинформатике, в частности из области сравнительной геномики. Именно необходимость исследовать структурные различия между геномами вдохновила Мартина (Martin Krzywinski) из Canada's Michael Smith Genome Sciences Centre к созданию этого инструмента в 2004 году. С тех пор Circos использовался во множестве биоинформатических (и не только) проектов, а созданные с его помощью графики красовались на обложках крупнейших научных журналов.

Для создания иллюстрации из этой статьи я использовал онлайн версию визуализатора, но Circos можно установить и локально скачав дистрибутив с официального сайта.

Статью написал мой коллега AlexeyGurevich, но в силу отсутствия приглашения не смог опубликовать.



UPD: Ниже SergeiStartsev упомянул JavaScript библиотеку D3, которая тоже умеет делать подобные диаграммы, да ещё и с динамикой для веба.
Tags:
Hubs:
Total votes 38: ↑31 and ↓7+24
Comments20

Articles