В цифровую эпоху музыкальные предпочтения общества — это Big Data. Spotify, как глобальная музыкальная платформа, аккумулирует гигабайты информации о том, что, где и когда слушают люди.
Данный проект представляет собой исследование музыкального ландшафта ушедшего года, где каждая позиция в топе — это отражение коллективных эмоций, вирусных трендов и безусловных талантов.
Фирменный стиль
Для фирменного стиля использовались цвета, которые встречаются в программе Spotify

plt.style.use('seaborn-v0_8-darkgrid') plt.rcParams['font.family'] = 'DejaVu Sans' plt.rcParams['figure.figsize'] = (14, 8)
spotify_palette = ['
1DB954', '
191414', 'FFFFFF', '
535353', '#B3B3B3']Топ-10 артистов по общему количеству прослушиваний
The Weeknd, Taylor Swift и Ed Sheeran образуют тройку лидеров с практически одинаковыми показателями (около 14 миллиардов потоков каждый). Это демонстрирует устойчивую популярность артистов на протяжении длительного времени.
Интересно отметить присутствие как поп-исполнителей, так и рок-групп (Arctic Monkeys, Imagine Dragons) в топ-10, что указывает на разнообразие музыкальных предпочтений аудитории.

artist_streams = df.groupby('artist(s)_name')['streams'].sum().reset_index() top_10_artists = artist_streams.nlargest(10, 'streams').sort_values('streams', ascending=True)
plt.figure(figsize=(15, 9)) bars = plt.barh(top_10_artists['artist(s)_name'], top_10_artists['streams'] / 1e9, color=plt.cm.viridis(np.linspace(0.3, 0.9, len(top_10_artists))), edgecolor='black', alpha=0.85, height=0.7)
plt.title('ТОП-10 АРТИСТОВ ПО ОБЩЕМУ КОЛИЧЕСТВУ ПОТОКОВ', fontsize=20, fontweight='bold', pad=20, color=spotify_palette[1]) plt.xlabel('ПОТОКИ (МИЛЛИАРДЫ)', fontsize=14, fontweight='bold') plt.ylabel('АРТИСТ', fontsize=14, fontweight='bold')
for bar, streams in zip(bars, top_10_artists['streams']): plt.text(bar.get_width() + 0.05, bar.get_y() + bar.get_height()/2, f'{streams/1e9:.2f}B', va='center', fontsize=11, fontweight='bold')
plt. grid(axis='x', alpha=0.3, linestyle='--') plt.gca().spines['top'].set_visible(False) plt.gca().spines['right'].set_visible(False) plt.tight_layout() plt.show()
Топ-15 самых прослушиваемых треков 2023 года
Трек "Flowers" является абсолютным лидером с 738 миллионами потоков. Интересно, что в топ-15 представлены как сольные артисты, так и коллаборации, что подтверждает успешность обоих форматов.
df_2023 = df[df['released_year'] == 2023].copy() top_15_2023 = df_2023.nlargest(15, 'streams')[['track_name', 'artist(s)_name', 'streams']] top_15_2023 = top_15_2023.sort_values('streams', ascending=True)
plt.figure(figsize=(16, 10)) bars = plt.barh(top_15_2023['track_name'], top_15_2023['streams'] / 1e9, color=spotify_palette[0], edgecolor=spotify_palette[1], linewidth=1.5, height=0.7)
plt.title('ТОП-15 САМЫХ ПРОСЛУШИВАЕМЫХ ТРЕКОВ 2023 ГОДА', fontsize=22, fontweight='bold', pad=25, color=spotify_palette[1]) plt.xlabel('ПРОСЛУШИВАНИЯ (МИЛЛИАРДЫ)', fontsize=14, fontweight='bold', color=spotify_palette[3]) plt.ylabel('НАЗВАНИЕ ТРЕКА', fontsize=14, fontweight='bold', color=spotify_palette[3])
for i, (bar, stream) in enumerate(zip(bars, top_15_2023['streams'])): plt.text(bar.get_width() + 0.02, bar.get_y() + bar.get_height()/2, f'{stream/1e9:.2f}B', va='center', fontsize=11, fontweight='bold', color=spotify_palette[1])
plt.grid(axis='x', alpha=0.3, linestyle='--') plt.gca().spines['top'].set_visible(False) plt.gca().spines['right'].set_visible(False) plt.tight_layout() plt.show()
Анализ аудиохарактеристик популярных треков
Средняя танцевальность популярных треков составляет 67%, что указывает на преобладание танцевальных ритмов. Энергичность в среднем равна 64.3%, показывая умеренно-высокий уровень энергии.
Распределение по характеристикам показывает нормальное распределение для большинства параметров, что свидетельствует о разнообразии музыкальных стилей среди популярных треков.
audio_features = ['danceability_%', 'energy_%', 'valence_%', 'acousticness_%']
fig, axes = plt.subplots(2, 2, figsize=(16, 12)) axes = axes.flatten()
feature_names = ['Танцевальность', 'Энергичность', 'Позитивность', 'Акустичность']
for idx, (feature, name) in enumerate(zip(audio_features, feature_names)): ax = axes[idx] sns.histplot(df[feature], bins=30, kde=True, ax=ax, color=spotify_palette[idx], alpha=0.7, edgecolor=spotify_palette[1])
mean_val = df[feature].mean()
ax.axvline(mean_val, color=spotify_palette[1], linestyle='--', linewidth=2,
label=f'Среднее: {mean_val:.1f}%')
ax.set_title(f'РАСПРЕДЕЛЕНИЕ {name.upper()}', fontsize=16, fontweight='bold', pad=15)
ax.set_xlabel(f'{name} (%)', fontsize=12)
ax.set_ylabel('КОЛИЧЕСТВО ТРЕКОВ', fontsize=12)
ax.legend()
ax.grid(True, alpha=0.2)
plt.suptitle('АНАЛИЗ АУДИОХАРАКТЕРИСТИК ПОПУЛЯРНЫХ ТРЕКОВ', fontsize=20, fontweight='bold', y=1.02, color=spotify_palette[1]) plt.tight_layout() plt.show()
Корреляция между потоками и характеристиками
Самый сильный фактор, влияющий на количество потоков - присутствие в плейлистах Spotify (коэффициент корреляции 0.79). Это подтверждает важность включения в редакционные и пользовательские плейлисты для достижения популярности.
Музыкальные характеристики (танцевальность, энергичность, позитивность, акустичность) показывают слабую или отсутствующую прямую корреляцию с количеством потоков, что говорит о том, что популярность определяется не только техническими параметрами треков.
correlation_features = ['streams', 'danceability_%', 'energy_%', 'valence_%', 'acousticness_%', 'bpm', 'in_spotify_playlists']
corr_df = df[correlation_features].copy() correlation_matrix = corr_df.corr()
plt.figure(figsize=(14, 10)) mask = np.triu(np.ones_like(correlation_matrix, dtype=bool))
sns.heatmap(correlation_matrix, mask=mask, annot=True, fmt='.2f', cmap='RdYlGn', center=0, square=True, linewidths=1, cbar_kws={"shrink": 0.8, "label": "Коэффициент корреляции"}, annot_kws={"size": 11, "weight": "bold"})
plt.title('КОРРЕЛЯЦИЯ МЕЖДУ ПРОСЛУШИВАНИЯМИ И ХАРАКТЕРИСТИКАМИ', fontsize=18, fontweight='bold', pad=20, color=spotify_palette[1]) plt.xticks(rotation=45, ha='right', fontsize=11) plt.yticks(rotation=0, fontsize=11) plt.tight_layout() plt.show()
Таким образом, анализ приведённых данных дал нам общий ключ к пониманию того, какая музыка обладает большим шансом стать популярной: Фокус на плейлисты - основной драйвер роста потоков; Танцевальные ритмы - наиболее распространенная характеристика популярных треков; Долгосрочная карьера - ключ к накоплению общего количества потоков.




