> For the complete documentation index, see [llms.txt](https://bemind.gitbook.io/neural/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bemind.gitbook.io/neural/uchebniki-matplotlib-i-seaborn/matplotlib/lineinye-diagrammy-matplotlib-vsyo-chto-vam-nuzhno-znat.md).

# Линейные диаграммы Matplotlib – Всё, что вам нужно знать

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

Содержание

* [Загружаем наши данные](#zagruzhaem-nashi-dannye)
* [Как создать линейные диаграммы Matplotlib?](#kak-sozdat-lineinye-diagrammy-matplotlib)
* [Как добавить заголовки и метки осей в линейные диаграммы Matplotlib?](#kak-dobavit-zagolovki-i-metki-osei-v-lineinye-diagrammy-matplotlib)
* [Как настроить линии с цветами и точками данных?](#kak-nastroit-linii-s-cvetami-i-tochkami-dannykh)
* [Как добавить линии сетки на линейные диаграммы?](#kak-dobavit-linii-setki-na-lineinye-diagrammy)
* [Как добавить несколько строк в линейные диаграммы Matplotlib?](#kak-dobavit-neskolko-strok-v-lineinye-diagrammy-matplotlib)
* [Как добавить легенду к линейным диаграммам Matplotlib?](#kak-dobavit-legendu-k-lineinym-diagrammam-matplotlib)
* [Как добавить стиль к диаграммам Matplotlib?](#kak-dobavit-stil-k-diagrammam-matplotlib)
* [Заключение](#zaklyuchenie)

### Загружаем наши данные

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

```python
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 к вашему оператору импорта:

```python
%matplotlib inline
```

### Как создать линейные диаграммы Matplotlib?

Matplotlib позволяет очень легко добавить простой линейный график, используя метод `.plot()` библиотеки pyplot. Давайте посмотрим, как это сделать, используя данные  MEAN\_TEMPERATURE.

```python
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'])
plt.show()
```

Мы назначили переменную LOCAL\_DATE по оси x и переменную MEAN\_TEMPERATURE по значениям y.

Как видно ниже, Matplotlib автоматически сгруппировал метки оси x по месяцам:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-1.png" alt="" height="248" width="383"><figcaption></figcaption></figure>

### Как добавить заголовки и метки осей в линейные диаграммы Matplotlib?

Сейчас наша диаграмма показывает наши данные, но это может быть не самым информативным. Давайте добавим заголовок, а также метки осей.

Мы можем пойти дальше и добавить размеры шрифта к этим меткам:

```python
plt.plot(df['LOCAL_DATE'], df['MEAN_TEMPERATURE'])
plt.title('Toronto Temperature in 2020')
plt.xlabel('Date')
plt.ylabel('Mean Temperature')
plt.show()
```

Этот код возвращает следующий график:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-2.png" alt="" height="278" width="397"><figcaption></figcaption></figure>

Чтобы изменить размер шрифта, добавьте параметр `fontsize=` к каждому заголовку и атрибуту метки:

```python
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()
```

Это возвращает следующую диаграмму:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Unknown-2.png" alt="" height="285" width="400"><figcaption></figcaption></figure>

Проверьте другие [руководства по Python](https://datagy.io/category/python/) на datagy, включая наш [полный гид по стилям Pandas](https://datagy.io/pandas-style/) и [всеобъемлющий обзор сводных таблиц в Pandas](https://datagy.io/python-pivot-tables/)

### Как настроить линии с цветами и точками данных?

Matplotlib позволяет легко настраивать линии с помощью цветов, а также данных точек. Давайте посмотрим, как можно изменить цвет линии на серый и добавить метки данных к каждой точке:

```python
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()
```

Это выводит следующее:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-3.png" alt="" height="285" width="400"><figcaption></figcaption></figure>

Вы можете найти другие доступные стили маркеров [в основной документации здесь](https://matplotlib.org/stable/api/markers_api.html)

### Как добавить линии сетки на линейные диаграммы?

Наш график все еще может быть немного трудночитаемым. Давайте добавим к графику линии сетки, чтобы легче было определять позиции. Это можно сделать, передав аргумент `plt.grid(True)`. Вот как это делается:

```python
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()
```

Это возвращает следующую диаграмму:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-4.png" alt="Matplotlib line charts gridlines" height="285" width="400"><figcaption></figcaption></figure>

### Как добавить несколько строк в линейные диаграммы Matplotlib?

Давайте посмотрим, как добавить несколько линий к этим графикам. Это можно сделать, просто добавив новый график в код.

Давайте попробуем это, установив минимальную температуру и изменив цвет на синий:

```python
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()
```

Эта таблица возвращает следующее:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-5.png" alt="" height="285" width="400"><figcaption></figcaption></figure>

Давайте пойдем дальше и добавим на график максимальную температуру, выделив ее красным цветом:

```python
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()
```

Этот код возвращает следующий график:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-6.png" alt="Matplotlib line charts multiple lines" height="285" width="400"><figcaption></figcaption></figure>

### Как добавить легенду к линейным диаграммам Matplotlib?

Теперь, когда на диаграмме несколько линий, может быть полезно добавить к ней легенду, чтобы лучше их различать.

В Matplotlib можно это сделать, передавая метки для каждого элемента данных и устанавливая параметр `.legend()`

```python
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()
```

Это возвращает следующий график:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-7.png" alt="" height="285" width="400"><figcaption></figcaption></figure>

### Как добавить стиль к диаграммам Matplotlib?

Наконец, давайте научимся стилизовать график, чтобы он выглядел… немного приятнее. Matplotlib предлагает несколько встроенных стилей, которые вы можете [найти здесь](https://matplotlib.org/3.1.1/gallery/style_sheets/style_sheets_reference.html)

Давайте установим стиль `ggplot`

```python
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()
```

Это возвращает следующую диаграмму:

<figure><img src="http://datagy.io/wp-content/uploads/2021/02/Matplotlib-Line-Chart-8.png" alt="Matplotlib line charts set style" height="285" width="400"><figcaption></figcaption></figure>

### Заключение

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