Столбчатые диаграммы являются фундаментальным инструментом визуализации данных, используемым для сравнения значений между различными категориями. Они представляют данные в виде прямоугольных столбцов, длина которых пропорциональна значению, которое они представляют.
В этой лабораторной работе вы научитесь использовать библиотеку Matplotlib в Python для создания столбчатых диаграмм. Вы начнете с подготовки данных, затем создадите как вертикальные, так и горизонтальные столбчатые диаграммы, настроите их внешний вид с помощью цветов, а затем добавите легенду, чтобы сделать вашу диаграмму более информативной. Все построение графиков будет осуществляться путем написания скриптов на Python и сохранения диаграмм в виде файлов изображений, которые вы затем сможете просматривать непосредственно в среде LabEx.
Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 85%. Он получил 100% положительных отзывов от учащихся.
Подготовьте списки категорий и значений
На этом этапе вы начнете с настройки основных данных для нашей столбчатой диаграммы. Столбчатая диаграмма требует два основных компонента: список категорий для оси и соответствующий список числовых значений, которые определяют размер столбцов.
Мы будем использовать простой набор данных, представляющий ежемесячные показатели продаж. Сначала откройте файл main.py, расположенный в каталоге ~/project, через файловый менеджер слева.
Теперь добавьте следующий код Python в файл main.py. Этот код импортирует необходимую библиотеку Matplotlib и определяет наши данные.
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
Разберем этот код:
import matplotlib.pyplot as plt: Эта строка импортирует модуль pyplot из библиотеки matplotlib и присваивает ему общепринятый псевдоним plt. Мы будем использовать plt для вызова функций построения графиков.
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']: Этот список содержит метки для нашей оси x. Каждая строка представляет категорию.
values = [320, 450, 500, 480, 600]: Этот список содержит числовые данные, соответствующие каждой категории. Например, продажи за 'Jan' составляют 320.
После добавления кода сохраните файл main.py. На следующем шаге мы будем использовать эти данные для создания нашей первой столбчатой диаграммы.
Создайте вертикальную столбчатую диаграмму с помощью plt.bar()
На этом этапе вы используете подготовленные данные для создания вертикальной столбчатой диаграммы. Основная функция для этого — plt.bar(). Эта функция принимает категории для оси x и соответствующие им значения для оси y для отрисовки столбцов.
Добавьте следующие строки кода в конец вашего файла main.py. Этот новый код сгенерирует диаграмму, добавит метки и заголовок, а затем сохранит ее в виде файла изображения.
## Create the bar chart
plt.bar(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Save the plot to a file
plt.savefig('/home/labex/project/vertical_bar_chart.png')
print("Vertical bar chart saved as vertical_bar_chart.png")
Вот объяснение нового кода:
plt.bar(categories, values): Это основная функция, которая создает столбчатую диаграмму. Она сопоставляет список categories с осью x, а список values — с высотой столбцов на оси y.
plt.title(), plt.xlabel(), plt.ylabel(): Эти функции добавляют заголовок к диаграмме и метки к осям x и y соответственно, делая диаграмму более понятной.
plt.savefig(...): Поскольку мы находимся в среде без графического интерфейса, мы не можем отобразить диаграмму напрямую с помощью plt.show(). Вместо этого plt.savefig() сохраняет сгенерированную диаграмму в файл. Мы сохраняем ее как vertical_bar_chart.png в каталоге ~/project.
Теперь запустите ваш скрипт из терминала:
python3 main.py
Вы должны увидеть следующий вывод:
Vertical bar chart saved as vertical_bar_chart.png
В вашем файловом менеджере появится новый файл с именем vertical_bar_chart.png. Дважды щелкните по нему, чтобы увидеть вашу первую столбчатую диаграмму!
Создайте горизонтальную столбчатую диаграмму с помощью plt.barh()
На этом этапе вы научитесь создавать горизонтальную столбчатую диаграмму. Это полезно, когда у вас есть длинные метки категорий, которые могут перекрываться на вертикальной диаграмме. Matplotlib предоставляет для этой цели функцию plt.barh(), которая работает аналогично plt.bar(), но рисует столбцы горизонтально.
Измените ваш файл main.py, чтобы использовать plt.barh() вместо plt.bar(). Обратите внимание, что для plt.barh() параметры — это y (категории) и width (значения). Нам также нужно поменять местами xlabel и ylabel.
Замените раздел построения графиков в вашем файле main.py следующим кодом:
## Create the horizontal bar chart
plt.barh(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')
## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')
print("Horizontal bar chart saved as horizontal_bar_chart.png")
Полный файл main.py теперь должен выглядеть так:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
## Create the horizontal bar chart
plt.barh(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')
## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')
print("Horizontal bar chart saved as horizontal_bar_chart.png")
Теперь запустите обновленный скрипт из терминала:
python3 main.py
Вы увидите следующий вывод:
Horizontal bar chart saved as horizontal_bar_chart.png
Проверьте ваш каталог проекта на наличие нового файла horizontal_bar_chart.png и откройте его, чтобы просмотреть вашу горизонтальную столбчатую диаграмму.
Настройте цвета столбцов с помощью параметра color
На этом этапе вы улучшите свою столбчатую диаграмму, добавив цвета. Matplotlib позволяет легко изменять цвет столбцов с помощью параметра color в функции plt.bar() или plt.barh(). Вы можете установить один цвет для всех столбцов или предоставить список цветов для индивидуальной окраски каждого столбца.
Вернемся к вертикальной столбчатой диаграмме и придадим каждому столбцу свой цвет. Измените ваш файл main.py, чтобы включить список цветов и передать его в функцию plt.bar().
Ваш файл main.py должен быть обновлен следующим образом:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
colors = ['skyblue', 'lightgreen', 'salmon', 'gold', 'orchid']
## Create the bar chart with custom colors
plt.bar(categories, values, color=colors)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Save the plot to a file
plt.savefig('/home/labex/project/colored_bar_chart.png')
print("Colored bar chart saved as colored_bar_chart.png")
В этом коде:
Мы определили список colors, где каждое название цвета соответствует столбцу на диаграмме.
Мы передали этот список параметру color в plt.bar(categories, values, color=colors).
Мы изменили имя выходного файла на colored_bar_chart.png, чтобы не перезаписать нашу предыдущую работу.
Выполните скрипт из терминала:
python3 main.py
Вывод будет следующим:
Colored bar chart saved as colored_bar_chart.png
Откройте недавно созданный файл colored_bar_chart.png, чтобы увидеть вашу красочную столбчатую диаграмму.
Добавьте легенду с помощью plt.legend()
На этом заключительном этапе вы научитесь добавлять легенду к вашей диаграмме. Легенда имеет решающее значение для объяснения того, что представляют различные элементы на диаграмме, особенно когда вы строите несколько наборов данных.
Чтобы добавить легенду, сначала необходимо указать label для ваших данных на диаграмме. Затем вы вызываете функцию plt.legend(), чтобы отобразить легенду на диаграмме.
Давайте изменим скрипт main.py, чтобы включить метку для наших данных о продажах, а затем отрисуем легенду.
Обновите ваш файл main.py следующим кодом:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
## Create the bar chart with a label
plt.bar(categories, values, color='skyblue', label='This Year Sales')
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Add the legend
plt.legend()
## Save the plot to a file
plt.savefig('/home/labex/project/bar_chart_with_legend.png')
print("Bar chart with legend saved as bar_chart_with_legend.png")
Вот изменения:
В plt.bar() мы добавили параметр label='This Year Sales'. Это присваивает имя нашему набору данных.
Мы добавили вызов plt.legend(). Эта функция находит все помеченные элементы на графике и создает окно легенды.
Для простоты мы используем один цвет 'skyblue' и сохраняем финальную диаграмму как bar_chart_with_legend.png.
Запустите скрипт в последний раз:
python3 main.py
Вы увидите финальное подтверждающее сообщение:
Bar chart with legend saved as bar_chart_with_legend.png
Теперь откройте файл bar_chart_with_legend.png из файлового менеджера. Вы увидите вашу столбчатую диаграмму с легендой, которая правильно идентифицирует столбцы как "This Year Sales".
Резюме
Поздравляем с завершением этой лабораторной работы! Вы успешно освоили основы создания и настройки столбчатых диаграмм с помощью Matplotlib.
В этой лабораторной работе вы научились:
Подготавливать данные (категории и значения) для построения графиков.
Создавать вертикальную столбчатую диаграмму с помощью plt.bar().
Создавать горизонтальную столбчатую диаграмму с помощью plt.barh().
Настраивать внешний вид столбцов с помощью параметра color.
Добавлять описательную легенду к вашей диаграмме с помощью параметра label и функции plt.legend().
Эти навыки являются неотъемлемой частью любой задачи по анализу или визуализации данных. Теперь вы можете создавать наглядные и эффективные столбчатые диаграммы для сравнения категориальных данных. Не стесняйтесь экспериментировать с другими функциями Matplotlib, чтобы создавать еще более сложные графики.