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, но в силу отсутствия приглашения не смог опубликовать.
Автор: vyahhi