Вводная часть
Для моего проекта я решила выбрать довольно распространенную среди граждан обсуждаемой страны, Америки, однако редко затрагиваемую в европейских кругах тему: «Смертность людей от ранений огнестрельным оружием (в период между 2012 и 2014 годами)». Несмотря на то, что факторов, необходимых для полного понимания картины крайне много, включая изначальные причины смертей, будь то человеческий фактор или сведение счетов со жизнью, возрастная категория граждан, находящихся под риском, места свершенных преступлений, я решила сделать акцент на основных переменных, более, по моему мнению, значимых, а именно: пол, временные промежутки, раса и уровень образования, — так как именно эти критерии помогают осознать существующие тенденции и составить объективный прогноз на будущее для одной из немногих стран, на чьей территории (хоть и частично) разрешено приобретение и хранение оружия.
Для сбора информации я использовала данные, опубликованные на американском веб-сайте, известным англо-говорящей аудитории самостоятельными аналитическими методами, FiveThirtyEight: https://fivethirtyeight.com/features/gun-deaths/
Чаще всего на приведенном выше веб-сайте затрагиваются темы политики, социологии или истории, однако проблема, разбираемая в данном исследовании, относится ко ВСЕМ аспектам жизни американцев, ведь теракты, превышение полномочий полицейскими, безответственность со стороны продавцов оружия подрывают репутацию правительства, заставляя народ чувствовать себя уязвимо для потенциальных преступников. Чем больше смертей, причиной которых выступает легализация оружия, тем меньше государство ощущает контроль над растерянными и напуганными гражданами.
Проект FiveThirtyEight очень стильно, и в тоже время лаконично, выполнен: он представлен в виде интерактивной таблички, где каждая ячейка символизирует человеческую жизнь. Удобство пользования сайтом положительно сказывается на общем полученном впечатлении во время анализа такой серьезной темы и добавляет больше интереса к самому блогу.
Я не выбирала оставшиеся в окончательном варианте проекта виды графиков, исходя из их простоты или эстетической составляющей, а скорее стремилась найти способ, каким удалось бы более доступно и логично обозначить важные для меня тезисы: основные факторы, ведущие к смертям, как к случайным, так и неизбежным. Линейные графики очень эффективны, если целью является продемонстрировать разницу между двумя или большим количеством категорий. Таблицы удобны в работе с более, чем двумя переменными, особенно если эти переменные взяты из кардинально различающихся аспектов мироустройства, биологического и социального. Круговой график также используется для демонстрации контрастирования двух объектов, однако в моем случае он изображает небольшие и все же значимые для меня, как беззащитного обывателя, показатели.
Этапы работы
Выбрав тему, я начала искать доступный мне способ зафиксировать необходимую информацию в виде файла xlx или, как в моем случае и получилось, csv. Для этого я обратилась к сайту «data.world»: https://data.world/datasets/open-data. В поисковой строке сайта я ввела ключевые слова для эффективности процесса, среди которых gun, deaths. Искомая мной база данных оказалась первой в выведенных вариантах. Все параметры и результаты исследования были удобно оформлены в виде таблички csv, которую я скачала для более подробного ознакомления и дальнейшего применения в написании кода.
Для удобного оформления взятых мной ранее данных я обратилась к сайту «github»: https://github.com/. Я создала новый, специально выделенный под данный проект, репозиторий, в который я и выгрузила скаченный на data.world файл с расширением scv, поддерживаемый выбранным сайтом. Затем я в отдельной вкладке открыла «сырой» датасет, однако его «отталкивающе непонятное» содержание мне неважно, так как для оформления графиков достаточно скопировать URL сайта и написать соответствующий код.
Код я решила писать в Google.Colab, с которым нас познакомили на курсе, тем более, что он прост в использовании и предлагает необходимые «подсказки» непосредственно при написании конструкций, включающих в себя переменные, которые со временем так наскучивает копировать.
В новом блокноте я импортирую необходимые мне в дальнейшем библиотеки или, как в случае с pyplot, их конкретные методы:
from matplotlib import pyplot as plt import seaborn as sns import pandas as pd
Далее следует часть, ради которой и проделывались все ранее описанные действия. Я сохраняю в переменную «df» прочитанные программой данные с GitHib, вставляя ранее копированную ссылку на датасет:
df = pd.read_csv ('https://raw.githubusercontent.com/ksenomama/AI_project_2024/main/full_data.csv?token=GHSAT0AAAAAACT5O44K4PTRO2QFAYBVALJMZTV5OYQ') df
Наступает основной этап проекта: оформление графиков посредством формирования окончательного варианта готового кода. Colad предлагает рассмотреть варианты готовых графиков, некоторые из которых мне подходят по поставленной задаче, однако не все.
Линейный график мне был крайне полезен для демонстрации значительной разницы между количествами смертей представителей мужского и женского пола от огнестрельного оружия, так что я добавила предлагаемый код в отдельную ячейку и запустила:
from matplotlib import pyplot as plt import seaborn as sns df.groupby ('sex').size ().plot (kind='barh', color=sns.palettes.mpl_palette ('Dark2')) plt.gca ().spines[['top', 'right', ]].set_visible (False)
Цветовое распределение по двум категориям подходило мне по двум причинам. Во-первых, оно показательно проводит параллель между расой, уровнем образования и количеством жертв, а во-вторых — обилие визуально привлекательных цветов предавало бы эстетическую ценность проекту, так что я взяла готовый график и оставила предложенный код без изменений:
from matplotlib import pyplot as plt import seaborn as sns import pandas as pd plt.subplots (figsize=(8, 8)) df_2dhist = pd.DataFrame ({ x_label: grp['education'].value_counts () for x_label, grp in df.groupby ('race') }) sns.heatmap (df_2dhist, cmap='viridis') plt.xlabel ('race') _ = plt.ylabel ('education')
Второй линейный график рассматривает лишь один индикатор риска: уровень образования. Несмотря на то, что исходя из понятий логики и здравого смысла, большинство жертв связывается с криминалом в силу недальновидности из-за неполного общего образования, большая часть жертв окончили старшую школу, что ломает общие представления о формирующейся картине. Я решила отдельно выделить данный фактор, так как полученная статистика удивила меня и заставила задуматься о верности моих суждений:
from matplotlib import pyplot as plt import seaborn as sns df.groupby ('education').size ().plot (kind='barh', color=sns.palettes.mpl_palette ('Dark2')) plt.gca ().spines[['top', 'right', ]].set_visible (False)
И последний, четвертый график вынудил меня искать обходные варианты, так как colab не предлагал мне варианты круговых графиков, и все же для меня было необходимо продемонстрировать параллель (точнее, ее отсутствие) между смертностью и временами года. Я обратилась к stackoverflow, где смогла найти ответ на стоящий в моей голове вопрос. Далее я переписала код для того, чтобы добиться необходимого мне формата графика:
from matplotlib import pyplot as plt import seaborn as pd import pandas as pd df = pd.read_csv ('https://raw.githubusercontent.com/ksenomama/AI_project_2024/main/full_data.csv?token=GHSAT0AAAAAACT5O44LUGGHN4ROOGZ5CU3SZTV6POA') df['month'] = pd.to_numeric (df['month'], errors='coerce') df['month'].value_counts ().sort_index ().plot (kind='pie', autopct='%1.1f%%', startangle=90, title='month') plt.gca ().spines[['top', 'right', ]].set_visible (False)
Стилизация графиков стала самой захватывающей и интересной для меня, как для дизайнера, частью составления проекта. Для генерации грамотной палитры я использовала сайт Coolors: https://coolors.co/. Ниже представлен вариант, который мне больше всего понравился. Оттенки багрового отсылают на рассматриваемую тему, а желтые и зеленые оттенки вносят разнообразие в цветовое решение проекта.
Чтобы представленные графики удовлетворяли эстетические требования, я воспользовалась сайтом disagncap: https://www.designcap.com/. В нем, даже без платной подписки, пользователю доступно большое количество стильных шаблонов для различных видов графиков, некоторых из которых я взяла за основу, добавив ранее составленную цветовую гамму и разъясняющие надписи в Adobe Photoshop.
Итоговые графики




