Веб приложение для анализа и визуализации выборов в Государственную Думу в 2021
Выборы прошли 17–19 сентября, и новости о них постепенно уходят из повестки. Однако, результаты выборов — это не только таблица с итоговым процентом голосов за партии и кандидатов. Это большой массив данных, который был сформирован при участии миллионов людей. Эти данные содержат в себе тысячи историй, которые не расскажет итоговая таблица.
Сразу после выборов быстро появилась аналитика результатов выборов от Сергея Александровича Шпилькина. Меня заинтересовала методика, по которой строились графики зависимостей результатов партий на участках от явки на участках. Я участвовал в наблюдении за ходом выборов по месту жительства и у меня были данные результатов по каждой участковой избирательной комиссии (УИК) по моему округу. Я построил график по этой методике для двух партий — «Единая Россия» и «КПРФ», так как эти две партии лидировали в моем районе.
Так как точек было не много, можно было подписать каждую точку номером УИКа и задать узнаваемую геометрию — синий квадрат для «Единой России» и красный круг для «КПРФ». Получилось очень нагрядно. Часть участков сгрупировались в одной области. Результаты «КПРФ» и «Единой России» в этой области практически совпадали. Две точки расположились в области более высокой явки и результаты партий там существенно расходились. Это были УИКи с номерами 3611 и 4002. На сайте ЦИК я нашел местонахождение этих УИКов. Оказалось, что один располагался в Институте хирургии им. А.В. Вишневского, а другой — на Павелецком вокзале. То есть эти участки, очевидно, имели электорат, который существенно отличался в своих предпочтениях от среднего по району. На остальных участках аномального голосования не происходило.
Вскоре появились данные по всем участкам России в файле .xlsx. Точно не знаю кто парсил сайт ЦИКа, но выражаю огромную благодарность за эту работу! Я подумал, что мог бы создать веб приложение, которое смогло бы строить подобные графики для всех районов Москвы, а заодно и платформу, на основе которой можно было бы легко визуализировать данные в других разрезах.
Для своих целей я выбрал веб фреймворк Django, так как это один из самых популярных фреймворков на Python. А на Python, как известно, существует много мощных библиотек для работы с данными. Для обработки данных я импортировал библиотеку Pandas. Для построения графиков — MatplotLib. Исходные данные я переписал из .xls файла в базу данных SQLite. На основе этой платформы мне удалось довольно быстро создать демо приложение. Оно не отличается изысканным дизайном, но работает. Для начала я посчитал итоги выборов. Они сошлись с результатами ЦИКа. Значит данные полные. Приложение я разместил на домене duma-21.ru. Исходный код и данные находятся на GitHub.
Возможно, среди сообщества Хабра, найдутся люди, которым интересен анализ данных по прошедшим выборам и они смогут использовать эту платформу для реализации своего проекта. Напишите, пожалуйста, что вы думаете. Нужен ли еще один проект с визуализацией данных по итогам выборов или достаточно инструментов, которые присутствуют на сайте ЦИКа? Есть ли у вас идеи, как еще можно использовать данные выборов, чтобы они рассказали интересную историю?