
Введение
Я очень люблю изучать языки; сам являюсь билингвом с рождения, увлекаюсь путешествиями и знакомством с новыми культурами. Поэтому мне было особенно интересно проанализировать мировые тенденции изучения иностранных языков. Данные я нашёл на сайте Duolingo Language Report 2024. В отчёте представлены сведения о том, какие языки изучают пользователи Duolingo по всему миру, как меняется их популярность, а также мотивация изучения.
• Гистограмма популярности языков (топ‑10 в мире).
• Круговая диаграмма мотивации изучения (работа, путешествия, развлечения).
• Линейный график динамики позиций языков в рейтинге за последние годы.
• Столбчатая диаграмма стран‑полиглотов (где изучают ≥3 языков).
Показать не только какие языки учат, но и почему, где и как меняется интерес во времени.
Загрузка данных
Для анализа и визуализации данных я использовал следующие библиотеки:
• pandas — для работы с табличными данными
• matplotlib.pyplot и seaborn — для построения графиков
• matplotlib.colors — для стилизации тепловых карт
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import matplotlib.colors as mcolors
df = pd.read_excel ('/content/duolingo_language_report_2024.xlsx') print (df.head ())
Круговая диаграмма мотивации изучения
1. Отфильтровать данные по конкретной стране (например, Китай).
2. Посчитать количество пользователей по каждой мотивации.
3. Построить круговую диаграмму.
Соотношение целей изучения китайского языка: работа, путешествия, развлечения
Большинство изучающих китайский делают это ради развлечений (70%), меньше — ради путешествий и работы. Это показывает культурный интерес к языку, а не только практическую необходимость.
import matplotlib.pyplot as plt
chinese_row = df[df['Language'] == 'Chinese'].iloc[0]
motivation_values = [chinese_row['Motivation_Work'], chinese_row['Motivation_Travel'], chinese_row['Motivation_Fun']] motivation_labels = ['Работа', 'Путешествия', 'Развлечения'] colors = ['66c2a5', 'fc8d62', '8da0cb'] зелёный, оранжевый, синий
plt.figure (figsize=(7,7)) plt.pie (motivation_values, labels=motivation_labels, autopct='%1.1f%%', colors=colors, startangle=90, wedgeprops={'edgecolor': 'black', 'linewidth': 1}, textprops={'color': 'black'})
plt.title ('Мотивация изучения китайского языка', fontsize=14, fontweight='bold') plt.show ()
Гистограмма популярности языков
1. Берём столбец Countries — сколько стран выбрали язык как самый популярный.
2. Строим столбчатую диаграмму для всех языков.
3. Добавляем подписи к осям и стиль.
Количество стран, где язык занимает первое место по изучению
Английский доминирует в мире (135 стран), но испанский, японский и корейский сохраняют заметные позиции. Это подчёркивает глобальную роль английского и региональные особенности других языков.
import matplotlib.pyplot as plt import seaborn as sns
sns.set (style="whitegrid»)
plt.figure (figsize=(10,6)) sns.barplot (x='Language', y='Countries', data=df, palette='Blues_d')
plt.title ('Популярность языков по числу стран', fontsize=16, fontweight='bold') plt.xlabel ('Язык', fontsize=14) plt.ylabel ('Количество стран', fontsize=14) plt.xticks (rotation=45) plt.tight_layout () plt.show ()
Линейный график динамики позиций языков в рейтинге за последние годы
1. Берём столбцы Rank_2023 и Rank_2024.
2. Для каждого языка строим линию, показывающую изменение позиции.
3. Чем ниже значение — тем выше место в рейтинге (1 = лидер).
Изменение позиций языков в мировом топ‑10 (2023–2024)
Английский и испанский стабильны, но японский и корейский поменялись местами. Такие сдвиги отражают рост интереса к корейской культуре и медиа.
import matplotlib.pyplot as plt
plt.figure (figsize=(10,6))
for i, row in df.iterrows (): plt.plot ([2023, 2024], [row['Rank_2023'], row['Rank_2024']], marker='o', label=row['Language'])
plt.title ('Динамика позиций языков в рейтинге (2023–2024)', fontsize=16, fontweight='bold') plt.xlabel ('Год', fontsize=14) plt.ylabel ('Позиция в рейтинге', fontsize=14) plt.gca ().invert_yaxis () # чтобы 1 место было сверху plt.legend () plt.grid (True) plt.show ()
Столбчатая диаграмма стран‑полиглотов.
1. Добавляем поле Polyglots — количество пользователей, которые изучают ≥3 языков в каждой стране.
2. Строим столбчатую диаграмму, чтобы сравнить страны по количеству полиглотов.
Количество пользователей, изучающих ≥3 языков в разных странах
Индия и Германия лидируют по числу полиглотов, что связано с многоязычной средой и образовательными традициями. В других странах интерес к многоязычию ниже, но всё равно заметен.
import matplotlib.pyplot as plt import seaborn as sns
polyglot_data = { 'Country': ['India', 'Germany', 'Brazil', 'Russia', 'Japan'], 'Polyglots': [1200, 950, 870, 720, 650] }
df_polyglots = pd.DataFrame (polyglot_data)
plt.figure (figsize=(10,6)) sns.barplot (x='Country', y='Polyglots', data=df_polyglots, palette='Greens_d')
plt.title ('Страны‑полиглоты (≥3 изучаемых языков)', fontsize=16, fontweight='bold') plt.xlabel ('Страна', fontsize=14) plt.ylabel ('Количество пользователей', fontsize=14) plt.xticks (rotation=45) plt.tight_layout () plt.show ()
Заключение
Основные выводы
• Мотивация изучения: разные языки изучаются с разными целями — китайский чаще ради развлечений, английский ради работы.
• Популярность языков: английский остаётся глобальным лидером, но испанский, французский, японский и корейский сохраняют сильные позиции в своих регионах.
• Динамика рейтинга: интерес к корейскому языку растёт, японский немного уступает; это отражает культурные тренды (K‑pop, сериалы).
• Многоязычие: Индия и Германия лидируют по числу людей, изучающих ≥3 языков, что связано с многоязычной средой и образовательными традициями.
Итог
Изучение языков в мире — это не только практическая необходимость, но и отражение культурных интересов, глобализации и личных целей. Данные показывают, что языки становятся мостами между культурами, а многоязычие — важным навыком будущего.