Рубрики
Без рубрики

FS Project 1: диаграмма с Python

Введение Я изучаю кодирование на питоне и науку о данных, потому что я заинтересован в применении … Tagged с Python, DataScience.

Вступление

Я изучаю кодирование Python и науку о данных, потому что я заинтересован в применении этих навыков для работы с более крупными наборами данных и анализ таких данных, чтобы сделать более информированные, более информированные и своевременные операционные и политические решения в области финансов и экономики.

Будучи учеником, зачисленным в Bootcamp Data Science в Flatiron School, я наслаждаюсь изучением этих новых навыков и уже нахожу ценность в их применении для решения реальных вопросов и проблем.

Бизнес -проблема

В моем первом проекте рассматривается киноиндустрия для клиента, который заинтересован в вступлении в бизнес. Описательный анализ данных показывает, что киноиндустрия является прибыльной, но существует значительная разновидности в производительности среди фильмов и производственных студий. Клиент может использовать этот анализ, чтобы понять ключевые тенденции в киноиндустрии, определить его основных конкурентов и определить типы фильмов, которые они будут создавать. Этот анализ также служит базовой линией для более глубоких погружений в киноиндустрии.

Данные и методология

Проект изучал более десяти наборов данных, связанных с тем, чем на несколько десяти, из четырех источников. За последние 20 лет файлы данных предоставляют широкий спектр информации о доходах от кассовых сборов отдельных фильмов, бюджетов, жанров, а также о производственных студиях и ассоциированных актеров и членах экипажа.

Проект применяет исследовательский анализ данных и рассматривает тенденции ключевых метрик с течением времени. Это дает проницательный обзор эволюции производительности киноиндустрии. Несколько файлов данных содержат полезную информацию, которая дополняет другие файлы, в то время как некоторые данные были дублированы. Это требовало обширной очистки и соединения наборов данных. У меня есть опыт подготовки и анализа наборов данных, в основном в Excel; Но я никогда не работал с таким большим количеством больших файлов одновременно и не делал это с кодом Python. Было интересно заняться этим по -новому, и мне особенно понравилось анализировать данные и генерировать выход графиков, который представляет результаты.

График с Python

Как сделать график с двойными оси Y

Одним из первых выводов является то, что в данных существуют большие выбросы, и для большинства индикаторов существуют заметные различия в фильмах. Учитывая эти характеристики, я хотел изучить валовой доход и рентабельность инвестиций в топ -музыкант фильмов (то есть те, которые в 99 -м процентиле). Разумная гипотеза заключается в том, что фильмы с самым высоким валовым доходом будут среди фильмов с самым высоким ROI. Это не вариант. Чтобы показать это чисто, я заложил валовой доход и рентабельность инвестиций в лучшие фильмы по двум разным точкам.

Диаграмма показывает, что лучшие кассовые фильмы прибыльны, но эти фильмы не обязательно имеют самый высокий рентабельность инвестиций. Производительность офиса блокбастера не приводит к более высокой инфекции ROI, подразумевая, что контроль затрат является важным фактором, определяющим прибыль.

#Create figure
fig, ax1 = plt.subplots(figsize=(14,9))

#Assign chart variables
title = df['title']
ww_gross = df['worldwide_gross_m']
ROIp = df['ROIpct']

#Identify two y-axes using the same x-axis (i.e., the second (left) y-axis will use the same x-axis 
ax2 = ax1.twinx()

#Create standard bar chart of gross revenue on the left y-axis
ax1.bar(title, ww_gross, color='lightsteelblue')

#Add line plot of ROI to same chart on the right y-axis. Set markers to '.' and remove line.
ax2.plot(title, ROIp, marker = '.', markersize = 12, color='navy', linestyle='None')

#X-axis label formatting: rotate and center
ax1.set_xticklabels(title, rotation=90, ha='center')

#Y-axis label formatting: Set labels and change colors of labels to match chart content
ax1.set_ylabel('Gross Revenue (Millions $)', color='gray')
ax2.set_ylabel('ROI (Percent)', color='navy')

#Y-axis tick marks: Set min, max, intervals
ax1.set_yticks(np.arange (0, 3250, 250))
ax2.set_yticks(np.arange (0, 3250, 250))

plt.show()

Как сделать сложенную процентную барную карту

Другим ценным выводом из данных является доля прибыльных фильмов, а не убыточных. Мне было любопытно посмотреть, какой процент фильмов подпадает под давлением диапазонов прибыльности – для этого я решил сделать сложенную процентную диаграмму. Этот анализ показывает, что киноиндустрия является прибыльным, но сложным бизнесом. Сорок процентов фильмов генерируют здоровую доходность инвестиций, превышающих 100%, в то время как 25%генерируют положительную, но более низкую доходность ниже 100%. Примечательно, что 35% фильмов теряют деньги.

После некоторого первоначального устранения неполадок в моем коде я подошел к этому следующим образом:

#Prepare data for stacked 100% bar chart. Create df grouped by year and count of ROI buckets. Convert count of ROI buckets to percent of total count.
df = ((df_roi.groupby(['year', 'ROI_buckets'])['ROI_buckets'].count()
                       /df_roi.groupby(['year'])['ROI_buckets'].count()))*100

#Set color map and select number of colors from color map
viridis = cm.get_cmap('viridis', 9)

#Create stacked bar chart
ax = df.unstack().plot.bar(stacked = True, figsize=(14,10), color=viridis.colors)

#Set title, x-label, y-label
ax.set_title('ROI - Movies in 90th percentile', fontsize = 18)
ax.set_xlabel('Year', fontsize = 14)
ax.set_ylabel('Percent of movies (%)', fontsize = 14)
#Set y-axis ticks: min, max, interval
ax.yaxis.set_ticks(np.arange(0, 110, 10)

#Set tick marks on right side.
ax.tick_params(labeltop=False, labelright=True)

#Reverse legend order and set legend location
handles, labels = ax.get_legend_handles_labels()
ax.legend(reversed(handles), reversed(labels), loc='center left', bbox_to_anchor=(1.05,0.5))

plt.show()

Заключительное понимание

С нетерпением жду продолжения изучения и поделиться данными о данных о данных-более!

Оригинал: “https://dev.to/magali/charting-with-code-250j”