Добавить легенду к рисунку в Matplotlib

Введение Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Обычно при визуализации более чем одной переменной вам нужно добавить к графику легенду, объясняющую, что представляет каждая переменная. В этой статье мы рассмотрим, как добавить легенду к графику Matplotlib. Создание графика Давайте сначала создадим простой график с двумя переменными: import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots () x = np.arange (0, 10, 0.1) y = np.sin ( Икс)

Вступление

Matplotlib - одна из наиболее широко используемых библиотек визуализации данных в Python. Обычно при визуализации более чем одной переменной вам нужно добавить к графику легенду, объясняющую, что представляет каждая переменная.

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

Создание сюжета

Давайте сначала создадим простой график с двумя переменными:

 import matplotlib.pyplot as plt 
 import numpy as np 
 
 fig, ax = plt.subplots() 
 
 x = np.arange(0, 10, 0.1) 
 y = np.sin(x) 
 z = np.cos(x) 
 
 ax.plot(y, color='blue') 
 ax.plot(z, color='black') 
 
 plt.show() 

Здесь мы построили синусоидальную функцию, начиная с 0 и заканчивая 10 с шагом 0.1 , а также косинусную функцию с тем же интервалом и шагом. Выполнение этого кода дает:

синус визуализацияPython{.ezlazyload}

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

Добавление легенды к фигуре в Matplotlib

Добавим легенду к этому сюжету. Во-первых, мы хотим label эти переменные, чтобы мы могли ссылаться на эти метки в легенде. Затем мы можем просто вызвать legend() для ax чтобы добавить легенду:

 import matplotlib.pyplot as plt 
 import numpy as np 
 
 fig, ax = plt.subplots() 
 
 x = np.arange(0, 10, 0.1) 
 y = np.sin(x) 
 z = np.cos(x) 
 
 ax.plot(y, color='blue', label='Sine wave') 
 ax.plot(z, color='black', label='Cosine wave') 
 leg = ax.legend() 
 
 plt.show() 

Теперь, если мы запустим код, на графике появится легенда:

добавить легенду в графикmatplotlib{.ezlazyload}

Обратите внимание, как легенда была автоматически помещена в единственное свободное место, где волны не наезжают на нее.

Настроить легенду в Matplotlib

Легенда добавлена, но немного загромождена. Давайте удалим границу вокруг него и переместим в другое место , а также изменим размер участка :

 import matplotlib.pyplot as plt 
 import numpy as np 
 
 fig, ax = plt.subplots(figsize=(12, 6)) 
 
 x = np.arange(0, 10, 0.1) 
 y = np.sin(x) 
 z = np.cos(x) 
 
 ax.plot(y, color='blue', label='Sine wave') 
 ax.plot(z, color='black', label='Cosine wave') 
 leg = ax.legend(loc='upper right', frameon=False) 
 
 plt.show() 

Это приводит к:

настройка легенды вmatplotlib{.ezlazyload}

Здесь мы использовали loc чтобы указать, что мы хотим поместить легенду в правом верхнем углу. Другие допустимые значения: upper left , lower left , upper right , lower right , upper center , lower center , center left и center right .

Кроме того, вы можете использовать center чтобы поместить его в мертвую best разместить легенду в «лучшем» свободном месте, чтобы она не перекрывалась ни с одним из других элементов. По умолчанию выбрано best

Добавить легенду за пределами топоров

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

В таких случаях вы можете разместить легенду вне осей и подальше от элементов, которые ее составляют. Это делается с помощью bbox_to_anchor , который указывает, где мы хотим привязать легенду:

 import matplotlib.pyplot as plt 
 import numpy as np 
 
 fig, ax = plt.subplots(figsize=(12, 6)) 
 
 x = np.arange(0, 10, 0.1) 
 y = np.sin(x) 
 z = np.cos(x) 
 
 ax.plot(y, color='blue', label='Sine wave') 
 ax.plot(z, color='black', label='Cosine wave') 
 leg = ax.legend(loc='center', bbox_to_anchor=(0.5, -0.10), shadow=False, ncol=2) 
 
 plt.show() 

Это приводит к:

добавить легенду внеосей{.ezlazyload}

bbox_to_anchor принимает несколько аргументов. Во-первых, он принимает кортеж, который может содержать до 4 элементов. Здесь мы можем указать x , y , width и height легенды.

Мы установили только значения x и y , чтобы сместить его на -0.10 ниже осей и 0.5 с левой стороны ( 0 - левая сторона поля, а 1 - правая сторона).

Настраивая их, вы можете установить легенду в любом месте. Внутри коробки или за ее пределами.

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

Наконец, мы установили аргумент ncol 2 . Это определяет количество меток в столбце. Поскольку у нас есть две метки и мы хотим, чтобы они находились в одном столбце, мы установили для него значение 2 . Если бы мы изменили этот аргумент на 1 , они были бы помещены один над другим:

добавить легенду вне осей однимстолбцом{.ezlazyload}

Примечание. Аргумент bbox_to_anchor используется вместе с аргументом loc loc поместит легенду на основе bbox_to_anchor . В нашем случае мы поместили его в center нового смещенного местоположения рамки.

Заключение

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

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :

::: {style=“border: 1px solid #ebebeb;padding: 15px;"} {.ebook-link}

Визуализация данных в Python

::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::

::: {.col-md-8 .col-xs-12 .my-auto} Ограниченная по времени скидка: 2 к 1, сэкономьте 50%!

✅ 30-дневная гарантия возврата денег без вопросов

✅ от начального до продвинутого

✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)

✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::

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

Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.

Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

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

comments powered by Disqus