
Описание проекта
Я «книжный червь» и долго выбирать тему мне не пришлось. Я прочитала множество книг, но никогда не интересовалась их историей, когда были напечатаны первые книги, какие жанры наиболее актуальны, и я решила поставить свой проект именно этой теме. На сайте Kaggle я нашла подходящий датасет, который содержит нужную мне информацию.
Выбор цветовой палитры пал на одну из моих любимых книг «Общество Мертвых Поэтов» Нэнси Горовиц-Клейнбау.


В ходе работы я использовала следующие графики: Круговая диаграмма Столбчатая диаграмма Линейчатая диаграмма
Обработка данных
В начале работы необходимо импортировать нужные библиотеки. Для визуализации данных используется matplotlib.pyplot, а для работы с табличной информацией — pandas.
Затем данные о книгах из файла imbd.csv загружаются на локальный компьютер с помощью функции files.upload (), доступной в среде Google Colab. После загрузки файл считывается в таблицу (DataFrame) с помощью функции pd.read_csv (). Это позволяет удобно анализировать данные.
Наконец, выводится информация из таблицы, чтобы убедиться в корректности загрузки данных.
from google.colab import files uploaded = files.upload ()
import matplotlib.pyplot as plt import pandas as pd df = pd.read_csv («best-selling-books.csv») df
График 1
В первом графике я рассматриваю динамику выпуска книг. Организация данных в порядке возрастания позволяет легко отследить, как часто книги публиковались в разные временные промежутки.
Для удобства под каждым столбцом указан год, а слева можно наблюдать шкалу с числами, которая указывает на количество книг. Если посмотреть на график, то можно увидеть, что печать книг началась ещё в XIV веке, но по-настоящему популярной и актуальной она стала в XX и XXI веках, но большой скачек приходит на середину XX века.
import pandas as pd import matplotlib.pyplot as plt
df = pd.read_csv ('best-selling-books.csv')
colors = ['#3F0F11', '#2A1B15', '#834B45', '#A8482F', '#877C78']
plt.figure (figsize=(10, 6)) df['First published'].plot (kind='hist', bins=20, color=colors[0], edgecolor='black')
plt.title ('Год Первого Издания', fontsize=16, color=colors[1]) plt.xlabel ('Год Издания', fontsize=14, color=colors[2]) plt.ylabel ('Количество Книг', fontsize=14, color=colors[2])
plt.gca ().spines[['top', 'right']].set_visible (False)
plt.show ()
График 2
Следующий график показывает самые популярные языки, на которых пишутся книги. Круговая диаграмма в данном случае является наглядным инструментом, поскольку она позволяет увидеть различия в процентном соотношении.
В графике мы видим такие языки, как английский, русский, японский, немецкий и французский. Из диаграммы можно сделать вывод, что английский язык занимает лидирующую позицию в мире печати. Это связано с тем, что английский является наиболее распространённым и международным языком. На втором месте находится русский язык, а на третьем — сразу три языка: французский, немецкий и японский.
import pandas as pd import matplotlib.pyplot as plt
df = pd.read_csv ('best-selling-books.csv')
top_languages = df['Original language'].value_counts ().head (5)
colors = ['#877C78', '#2A1B15', '#834B45', '#A8482F', '#3F0F11']
plt.figure (figsize=(8, 8)) plt.pie (top_languages, labels=top_languages.index, colors=colors, autopct='%1.1f%%', startangle=140)
plt.title ('5 Самых Популярных Языков Книг', fontsize=16)
plt.axis ('equal') plt.show ()
График 3
В этом графике отражена статистика по жанрам литературы, которые пользуются наибольшим спросом в мире. Такой вид диаграммы был выбран для того, чтобы наглядно продемонстрировать различия между ними.
Рассматривая график, можно сделать вывод, что самым востребованным направлением стало фэнтези, что меня лично поразило. Следом за ним с небольшим отрывом идут новеллы и книги по саморазвитию. Также в одном ряду оказались исторические книги и произведения для детей.
import pandas as pd import matplotlib.pyplot as plt
df = pd.read_csv ('best-selling-books.csv')
top_genres = df['Genre'].value_counts ().head (7)
colors = ['#877C78', '#2A1B15', '#834B45', '#A8482F', '#3F0F11', '#E0C7B0', '#D5A47D']
plt.figure (figsize=(10, 6)) top_genres.plot (kind='barh', color=colors[: len (top_genres)])
plt.title ('7 Самых Популярных Жанров Книг', fontsize=16, color=colors[1]) plt.xlabel ('Количество Книг', fontsize=14, color=colors[2]) plt.ylabel ('Жанр', fontsize=14, color=colors[2])
plt.gca ().invert_yaxis () plt.show ()
График 4
Кроме того, я решила изучить статистику продаж книг. В таблице по вертикали представлено количество книг, а по горизонтали — общая сумма в миллионах.
import pandas as pd import matplotlib.pyplot as plt
df = pd.read_csv ('best-selling-books.csv')
df = df[df['Approximate sales in millions'].notna ()]
colors = ['#877C78', '#2A1B15', '#834B45', '#A8482F', '#3F0F11']
plt.figure (figsize=(10, 6)) plt.hist (df['Approximate sales in millions'], bins=20, color=colors[0], edgecolor='black', alpha=0.7)
plt.title ('Гистограмма Приблизительных Продаж Книг В Миллионах', fontsize=16) plt.xlabel ('Приблизительные Продажи (в миллионах)', fontsize=14) plt.ylabel ('Количество Книг', fontsize=14)
plt.grid (axis='y', alpha=0.75) plt.show ()
График 5
Совсем недавно, буквально 2-3 года назад я посмотрела серию фильмов по Гарри Поттеру и прочитала эту же серию книг.
На графике мы можем наблюдать, что в 1997 году книги занимали лидирующие позиции по уровню продаж. Это связано с тем, что в тот год была опубликована первая книга. После этого наблюдается значительное снижение продаж, и они уменьшаются почти в два раза.
import pandas as pd import matplotlib.pyplot as plt import numpy as np
df = pd.read_csv ('best-selling-books.csv')
hp_books = df[df['Book'].str.contains ('Harry Potter', case=False)]
hp_books_sorted = hp_books.sort_values (by='First published', ascending=True)
years = hp_books_sorted['First published'].values sales = hp_books_sorted['Approximate sales in millions'].values
colors = ['#877C78', '#2A1B15', '#834B45', '#A8482F', '#3F0F11']
plt.figure (figsize=(10, 6)) plt.plot (years, sales, marker='o', color=colors[0], linewidth=2, markersize=8)
plt.title ('Продажи книг Гарри Поттера по годам', fontsize=16) plt.xlabel ('Год', fontsize=12) plt.ylabel ('Приблизительные Продажи (в миллионах)', fontsize=12)
plt.xticks (years, fontsize=10) plt.yticks (fontsize=10)
for i, txt in enumerate (sales): plt.annotate (txt, (years[i], sales[i]), textcoords="offset points», xytext=(0,10), ha='center')
plt.grid () plt.show ()
Вывод
На основе проведенного анализа самых популярных книг можно сделать несколько ключевых выводов.
Прежде всего, интерес к литературе и её востребованность начинают проявляться только в XX веке, что свидетельствует о повышении уровня образованности среди населения. Также мы проанализировали, на каких языках чаще всего создаются литературные произведения, и нет ничего удивительного в том, что это английский язык, который лидирует по популярности во всём мире. Кроме того, мы обсудили вопрос продаж книг и хочется подчеркнуть, что книги по-прежнему пользуются спросом, несмотря на стремительное развитие технологий.