Что и Почему?
Мне хотелось сделать проект основываясь на данных, которые были бы мне действительно интересны, и я бы могла применить их для своих целей. Так, после недолгих размышлений и поиска я нашла на сайте Kaggle таблицу с заклинаниями из настольной ролевой игры «D&D». Так как я сама играю за персонажа, который пользуется магией, и мне в целом интересно, как устроен спеллкастинг в данной игре, я решила остановиться на этой таблице.

таблица «dnd-spells» на Kaggle
Процесс работы
Первым делом для начала работы мне нужно было импортировать некоторые библиотеки, такие как pandas и numpy — для обработки информации, а также matplotlib и seaborn — для оформления данных. Часть библиотек я добавляла по мере работы. После того как я загрузила начальные данные для работы, можно было приступать к обработке информации и через pandas я открыла свой файл.


Так как я не особо знала с чего начать, я попробовала вставить данные в Google Colab и через него посмотреть предлагаемые виды обработки данных. Я не была ими особо довольна в плане стилистики, однако они задали мне направление и помогли придумать, что конкретно я могу использовать для создания таблиц. Также я поняла, что большинство имеющихся данных лучше всего подходят для самого классического типа графика, так как содержат в себе сравнительную информацию. Однако при этом мне удалось в дальнейшем использовать круговую диаграмму, а также диаграмму венна.
Для создания следующих графиков я использовала ChatGPT. С помощью искусственного интеллекта я окончательно решила, какие данные я хочу преобразовать, а также здесь и в дальнейшем использовала его для редактирования кода и стилизации картинки.
промпт (ChatGPT): — I have a csv file. I need to create several plots in python, using this data.
результат: — Here are some potential plots we can create:
- Distribution of Spell Levels: A bar chart showing the number of spells at each level.
- Spells by School of Magic: A bar chart showing the number of spells in each school of magic.
- Spells by Casting Time: A pie chart showing the proportion of spells by casting time.
- Components Required for Spells: A set of bar charts showing the number of spells requiring verbal, somatic, and material components.
- Spells by Class: A bar chart showing the number of spells available to each class.
График, который я точно хотела включить в свой финальный вариант, являлся количество заклинаний, доступное для разных классов «D&D». В изначальной версии кода, который мне предоставил ChatGPT по какой-то причине происходила проблема в сортировке, где некоторые классы слипались в один. Я попробовала убрать данную ошибку и параллельно с этим начала думать над будущей стилизацией. У официального источника «D&D» есть персональные цвета для каждого из классов, поэтому первой моей идеей было взять именно их за основу визуала. Так я использовала кастомные цвета, я также отсортировала каждый класс, чтобы он соответствовал своему оттенку.
промпты (ChatGPT): — create a plot «Spells by Class» from file — sort plot «Spells by Class» by specific order
Мне не очень сильно понравилась изначальная палитра, так как в ней было очень много грязных цветов. Я пошла на сайт seaborn, чтобы посмотреть какие возможные палитры существуют в библиотеке, и наткнулась на палитру viridis, которую использовала в дальнейшем для всех графиков. В нужные цвета я привела и график количества заклинаний по классу, и график с данными о количестве заклинаний на каждом уровне. При этом вторую гистограмму я решила слегка разнообразить, так как изначально у меня в очередной раз получался один и тот же градиент слева на право. Поэтому я попросила ChatGPT помочь мне распределить цвета на графике от наибольшего значения к меньшему.
промпт (ChatGPT): — make the darker colour corespond with higher number and lighter colour with lesser number
Изначальную гистограмму со школами заклинаний я решила преобразовать в круговую диаграмму, чтобы разнообразить типы визуализации данных. И благодаря этому я поняла, что до этого задумывалась исключительно о цветовой части графиков. Однако одной из самых важных частей диаграмм является текст, и именно с ним у меня возникла проблема. На круговой диаграмме черный шрифт поверх выбранного мной стиля был нечитаемым. В дальнейшем я использовала функции стилизации текста для приведения графиков к финальному виду.
промпты (ChatGPT): — create a pie chart with Matplotlib showing the number of spells in each school of magic.
Также из доступных мне данных я думала создать гистограмму, а в последствии лепестковую диаграмму, которая отображала бы данные о специфике каждого заклинания — является ли оно враждебным, целебным или призывающим. Но после того как я получила свой результат, я поняла, что из-за огромной диспропорции в количестве, графики выглядят скорее нелепо, и даже стилизация их бы не спасла.
промпты (ChatGPT): — create a bar chart showing the number of spells containing certain keywords in their descriptions (e.g., «damage», «heal») — create a spider plot for the same thing
Еще одним элементом таблицы, который я хотела проанализировать, являлись компоненты заклинаний (вербальный, соматический, материальный). Получив таблицу, я поняла, что она не совсем точно отображает действительность, так как некоторые заклинания требуют в себе сразу несколько компонентов. Это я в дальнейшем исправила на финальных графиках.
промпт (ChatGPT): — create a code from a file for a set of bar charts showing the number of spells requiring verbal, somatic, and material components
Финальные графики — анализ «D&D» заклинаний
Финальных графиков в конце концов у меня вышло семь, большинство из которых я выполнила в формате гистограммы, однако также присутствует круговая диаграмма и диаграмма венна.
Начальный процесс для всех графиков ничем не отличается от пробных примеров: добавить библиотеки и вывести на экран изначальную таблицу с графиками.






















