
Вводная часть
Для своего исследования я решила выбрать данные по тяжести преступлений разных регионов и областей Российской Федерации. Данные были взяты с открытого портала — http://crimestat.ru/opendata, в формате xml.
Помимо личного интереса к подобным социально-правовым вопросам, я еще считаю важным анализировать статистику данных для разработки потенциальных решений проблем со стороны управляющих органов.
В своем анализе я визуализирую данные используя линейные и круговые диаграммы для лучшего визуального восприятия читателя.
Этапы работы
График № 1
Первым делом следует сделать график топ-10 регионов по количеству преступлений средней тяжести
Сначала следует импортировать Pandas, с помощью которого мы и будем проводить анализ наших данных. После чего, импортируем уже сам файл и собираем данные.

После того как мы импортировали данные из файла, нужно их правильно отсортировать. В данном случае данные указанные под столбцом «Российская Федерация» нам не нужны, поэтому их надо исключить.

Для того чтобы приступить к постройке самого графика, следует преобразовать данные в DataFrame и отсортировать их кодом df_grooped (). В данном случае я сортирую по регионам и их суммированному значению, по убыванию и топ-10, а в конце форматирую для оси Y в значении 1000.
После форматирования и сортировки можно приступить к построению графика, используя код plt.figure (). Также, добавляем подписи на столбцы.
Для финального вида графика, нужно добавить настройки осей и заголовка, используя код plt. (x) (y)label (), plt.title (), plt. (x) (y)ticks () и plt.grid ().
График № 2
Теперь, нужно взять статистику преступлений средней тяжести по регионам с 2010 по 2022 год
Также, как с первым графиком, загружаем данные через Pandas и задаем значения импортируемых данных.
Назначаем Фильтр: только регионы (без округов) и годы с 2010+
Создаем Топ-20 регионов по суммарным преступлениям и сводную таблицу.
Можно приступить к визуализации таблицы через plt.figure. Инвертируем цветовую схему при помощи cmap='rocket_r' и создаем целые числа в аннотациях через код fmt=».0f».
Конечным этапом добавляем заголовок через plt.title (), и настраиваем название осей при помощи plt. (x) (y)labe () и plt. (x) (y)ticks ().
График № 3
После распределения количества преступлений средней тяжести по регионам, важно распределить количество преступлений средней тяжести по Федеральным Округам
Также, импортируем данные при помощи Pandas.
Далее собираем данные из файла и фильтруем их по Федеральным округам при помощи кода if 'ФО' in region: data.append ({'region': region, 'value': value}).
Это все что нам нужно для круговой диаграммы, поэтому преобразовываем в DataFrame и строим саму диаграмму при помощи кода fig = px.pie (), в конце назначая заголовок через код title=().
График № 4
Последним графиком нужно проанализировать динамику совершенных тяжких преступлений с 2009 по 2022 год во всей Российской Федерации
Вновь импортируем данные при помощи Pandas и загружаем данные из xml.
Преобразовав данные через DataFrame, группируем их по годам и суммируем значения при помощи кода df_grouped = df.groupby ('year')['value'].sum ().reset_index ()
Приступаем к построению графика при помощи кода plt.figure (), задаем значение столбцам используя plt. (x) (y)labe () и назначаем заголовок кодом plt.title ().