Основные линейные графики Matplotlib

MatplotlibBeginner
Практиковаться сейчас

Введение

Matplotlib — это комплексная библиотека для создания статических, анимированных и интерактивных визуализаций на Python. Это одна из самых популярных библиотек для визуализации данных, и она необходима любому специалисту по данным или аналитику, работающему с Python.

Линейный график (line plot) является одним из самых базовых и широко используемых типов графиков. Он отображает информацию в виде ряда точек данных, называемых «маркерами» (markers), соединенных отрезками прямых линий. Он часто используется для визуализации тенденции в данных за определенные промежутки времени — временного ряда (time series), поэтому линия часто рисуется хронологически.

В этой лабораторной работе вы научитесь создавать простой линейный график с нуля. Мы рассмотрим весь процесс: подготовку данных, их построение на графике, добавление описательных меток к осям и, наконец, сохранение графика в виде файла изображения, который вы сможете просмотреть непосредственно в среде LabEx.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 84%. Он получил 100% положительных отзывов от учащихся.

Подготовьте списки данных для x и y

На этом шаге мы подготовим данные для нашего графика. Прежде чем что-либо визуализировать, вам нужны данные. Для простого 2D линейного графика вам нужны два набора данных: один для оси x (горизонтальная ось) и один для оси y (вертикальная ось).

Мы будем использовать списки Python для хранения наших данных. Давайте создадим простой набор данных, представляющий рост населения за несколько лет.

Сначала откройте файл main.py, расположенный в каталоге ~/project, через файловый менеджер слева. Файл уже содержит необходимое импорт-выражение.

Теперь добавьте следующий код в main.py для создания двух списков, x и y.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

Здесь x представляет годы, а y представляет население в миллионах для каждого соответствующего года. Эти два списка послужат координатами для нашего линейного графика.

Постройте график с помощью plt.plot(x, y)

На этом шаге мы используем подготовленные данные для создания самого графика. Модуль pyplot библиотеки Matplotlib, который мы импортировали как plt, предоставляет функцию plot(), идеально подходящую для этой задачи.

Функция plt.plot() принимает два основных аргумента: данные для оси x и данные для оси y. Затем она нарисует линию, соединяющую точки, определенные этими координатами.

Добавьте следующую строку в ваш скрипт main.py, сразу после списков данных, которые вы создали на предыдущем шаге.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

Эта единственная строка кода указывает Matplotlib создать линейный график, используя списки x и y в качестве координат. Однако, если вы запустите скрипт сейчас, вы пока ничего не увидите. Нам еще предстоит добавить метки и явно сохранить график в файл.

Добавьте подпись оси x с помощью plt.xlabel()

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

Matplotlib предоставляет функцию plt.xlabel() для добавления метки к оси x. Вы просто передаете желаемую метку в виде строки этой функции.

Давайте добавим метку 'Year' к нашему графику. Добавьте следующую строку в ваш скрипт main.py после вызова plt.plot().

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

Теперь горизонтальная ось нашего графика будет четко обозначена как 'Year'.

Добавьте подпись оси y с помощью plt.ylabel()

На этом шаге мы добавим метку к оси y, завершив базовое маркирование нашего графика. Как и ось x, ось y нуждается в описательной метке, чтобы зрители могли понять данные.

Функция для этого — plt.ylabel(), которая работает точно так же, как plt.xlabel(). Вы передаете текст метки в виде строки.

Давайте добавим метку 'Population' к нашему графику. Добавьте следующую строку в ваш скрипт main.py, сразу после вызова plt.xlabel().

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

## Add y-axis label
plt.ylabel("Population (in millions)")

Теперь, когда обе оси имеют метки, наш график стал гораздо более понятным.

Отобразите график с помощью plt.show()

На этом заключительном шаге мы сгенерируем и просмотрим наш график. В типичной настольной среде вы можете использовать plt.show() для отображения графика в новом окне. Однако в веб-среде, такой как LabEx, мы не можем открывать окна с графическим интерфейсом.

Вместо этого мы сохраним график в файл изображения с помощью функции plt.savefig(). Эта функция сохраняет текущий рисунок в файл в вашем каталоге проекта.

Добавьте следующую строку в конец вашего скрипта main.py. Это сохранит график как изображение PNG с именем line_plot.png.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

## Add y-axis label
plt.ylabel("Population (in millions)")

## Save the plot to a file
plt.savefig("line_plot.png")

Теперь откройте терминал в WebIDE (вы можете использовать значок + на панели терминала или меню Terminal > New Terminal). Запустите ваш скрипт следующей командой:

python3 main.py

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

Line plot

Резюме

Поздравляем! Вы успешно создали и сохранили свой первый линейный график с помощью Matplotlib.

В этой лабораторной работе вы освоили основной рабочий процесс создания простого графика:

  1. Подготовка данных: Вы создали списки Python для хранения данных для осей x и y.
  2. Построение графика: Вы использовали plt.plot() для создания линейного графика на основе ваших данных.
  3. Добавление меток: Вы сделали график информативным, добавив метки с помощью plt.xlabel() и plt.ylabel().
  4. Сохранение графика: Вы научились использовать plt.savefig() для сохранения вашей визуализации в файл, что крайне важно в средах без графического интерфейса.

Это только начало того, что вы можете делать с Matplotlib. Теперь вы можете развивать эти навыки для создания более сложных и настраиваемых визуализаций. Продолжайте исследовать!