Линейные диаграммы Matplotlib – Всё, что вам нужно знать
В этом посте вы узнаете, как создавать линейные графики с использованием Matplotlib: добавление нескольких линий, добавление заголовков и меток осей, настройка точек на графике, добавление легенд и кастомизация с помощью стилей Matplotlib.
Содержание
Загружаем наши данные
Давайте начнем с загрузки наших библиотек и некоторых образцов данных. Мы используем временные ряды данных, которые охватывают температуру в течение года в Торонто, Канада.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/toronto-weather.xlsx', parse_dates=['LOCAL_DATE'])
print(df.head())
Печать первых пяти строк возвращает следующее:
STATION_NAME LOCAL_DATE MEAN_TEMPERATURE MIN_TEMPERATURE MAX_TEMPERATURE
0 TORONTO CITY CENTRE 2020-01-01 0.5 -0.8 1.7
1 TORONTO CITY CENTRE 2020-01-02 3.3 1.6 4.9
2 TORONTO CITY CENTRE 2020-01-03 5.1 3.0 7.2
3 TORONTO CITY CENTRE 2020-01-04 2.1 0.3 3.9
4 TORONTO CITY CENTRE 2020-01-05 0.4 -0.9 1.7
Если вы работаете в Jupyter notebooks и хотите отображать эти графики встроенными, добавьте следующий магический код Jupyter к вашему оператору импорта:
%matplotlib inline
Как создать линейные диаграммы Matplotlib?
Matplotlib позволяет очень легко добавить простой линейный график, используя метод .plot()
библиотеки pyplot. Давайте посмотрим, как это сделать, используя данные MEAN_TEMPERATURE.
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'])
plt.show()
Мы назначили переменную LOCAL_DATE по оси x и переменную MEAN_TEMPERATURE по значениям y.
Как видно ниже, Matplotlib автоматически сгруппировал метки оси x по месяцам:

Как добавить заголовки и метки осей в линейные диаграммы Matplotlib?
Сейчас наша диаграмма показывает наши данные, но это может быть не самым информативным. Давайте добавим заголовок, а также метки осей.
Мы можем пойти дальше и добавить размеры шрифта к этим меткам:
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'])
plt.title('Toronto Temperature in 2020')
plt.xlabel('Date')
plt.ylabel('Mean Temperature')
plt.show()
Этот код возвращает следующий график:

Чтобы изменить размер шрифта, добавьте параметр fontsize=
к каждому заголовку и атрибуту метки:
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'])
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Mean Temperature', fontsize=12)
plt.show()
Это возвращает следующую диаграмму:

Проверьте другие руководства по Python на datagy, включая наш полный гид по стилям Pandas и всеобъемлющий обзор сводных таблиц в Pandas
Как настроить линии с цветами и точками данных?
Matplotlib позволяет легко настраивать линии с помощью цветов, а также данных точек. Давайте посмотрим, как можно изменить цвет линии на серый и добавить метки данных к каждой точке:
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'], color='grey', marker='o')
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Mean Temperature', fontsize=12)
plt.show()
Это выводит следующее:

Вы можете найти другие доступные стили маркеров в основной документации здесь
Как добавить линии сетки на линейные диаграммы?
Наш график все еще может быть немного трудночитаемым. Давайте добавим к графику линии сетки, чтобы легче было определять позиции. Это можно сделать, передав аргумент plt.grid(True)
. Вот как это делается:
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'], color='grey', marker='o')
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Mean Temperature', fontsize=12)
plt.grid(True)
plt.show()
Это возвращает следующую диаграмму:

Как добавить несколько строк в линейные диаграммы Matplotlib?
Давайте посмотрим, как добавить несколько линий к этим графикам. Это можно сделать, просто добавив новый график в код.
Давайте попробуем это, установив минимальную температуру и изменив цвет на синий:
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'], color='grey')
plt.plot(df['LOCAL_DATE'], df['MIN_TEMPERATURE'], color='blue')
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Temperature', fontsize=12)
plt.grid(True)
plt.show()
Эта таблица возвращает следующее:

Давайте пойдем дальше и добавим на график максимальную температуру, выделив ее красным цветом:
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'], color='grey')
plt.plot(df['LOCAL_DATE'], df['MIN_TEMPERATURE'], color='blue')
plt.plot(df['LOCAL_DATE'], df['MAX_TEMPERATURE'], color='red')
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Temperature', fontsize=12)
plt.grid(True)
plt.show()
Этот код возвращает следующий график:

Как добавить легенду к линейным диаграммам Matplotlib?
Теперь, когда на диаграмме несколько линий, может быть полезно добавить к ней легенду, чтобы лучше их различать.
В Matplotlib можно это сделать, передавая метки для каждого элемента данных и устанавливая параметр .legend()
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'], color='grey', label='Mean temp')
plt.plot(df['LOCAL_DATE'], df['MIN_TEMPERATURE'], color='blue', label='Min temp')
plt.plot(df['LOCAL_DATE'], df['MAX_TEMPERATURE'], color='red', label='Max temp')
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Temperature', fontsize=12)
plt.legend()
plt.grid(True)
plt.show()
Это возвращает следующий график:

Как добавить стиль к диаграммам Matplotlib?
Наконец, давайте научимся стилизовать график, чтобы он выглядел… немного приятнее. Matplotlib предлагает несколько встроенных стилей, которые вы можете найти здесь
Давайте установим стиль ggplot
plt.style.use('ggplot')
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'], color='grey', label='Mean temp')
plt.plot(df['LOCAL_DATE'], df['MIN_TEMPERATURE'], color='blue', label='Min temp')
plt.plot(df['LOCAL_DATE'], df['MAX_TEMPERATURE'], color='red', label='Max temp')
plt.title('Toronto Temperature in 2020', fontsize=18)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Temperature', fontsize=12)
plt.legend()
plt.grid(True)
plt.show()
Это возвращает следующую диаграмму:

Заключение
В этой статье вы научились создавать линейные графики в Matplotlib, включая добавление нескольких линий, заголовков и меток осей, настройку точек графика, добавление легенд и применение стилей Matplotlib.
Last updated