Установить расположение легенды для сюжета pandas - PullRequest
0 голосов
/ 17 января 2020

Я знаю, как установить местоположение легенды для сюжета matplotlib с помощью plt.legend(loc='lower left'), однако я строю график с помощью pandas метода df.plot() и мне нужно установить местоположение легенды в нижнем левом углу.

Кто-нибудь знает, как это сделать?

Отредактировано: я на самом деле ищу способ сделать это через pandas 'df.plot(), а не через plt.legend(loc='lower left')

1 Ответ

2 голосов
/ 18 января 2020

Редактировать

Чтобы уточнить исходный ответ, в настоящее время нет способа сделать это через pandas.DataFrame.plot. В текущей реализации (версия 0.25.3) аргумент 'legend' для plot принимает только логическое значение или строку 'reverse':

legend : False / True / 'reverse'
Поместить легенду на вспомогательные участки оси

Не принимает строки положения легенды. Оставшиеся **kwargs передаются в базовый метод matplotlib.pyplot, который соответствует указанному аргументу 'kind' (по умолчанию matplotlib.pyplot.plot). Ни один из этих методов не позволяет позиционировать легенду через аргументы их ключевых слов.

Таким образом, only способ сделать это в настоящее время - это использовать plt.legend() напрямую - как описано в моем исходном ответе ниже.


Как комментарии указывают, что вы должны использовать plt.legend(loc='lower left'), чтобы поместить легенду в левом нижнем углу. Даже при использовании pandas.DataFrame.plot - нет параметра, который регулирует положение легенды, только если легенда нарисована. Вот полный пример, демонстрирующий использование

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.random.random(100)

df = pd.DataFrame({'x': x, 'y':y})
df.plot(kind='scatter', x='x', y='y', label='Scatter')
plt.legend(loc='lower left')
plt.show()

enter image description here

...