Удаление легенды на фигуре matplotlib


чтобы добавить легенду к сюжету matplotlib, нужно просто запустить legend().

Как удалить легенда из сюжета?

(ближе всего я подошел к этому, чтобы запустить legend([]) для того чтобы очистить легенда от данных. Но это оставляет уродливый белый прямоугольник в правом верхнем углу.)

4 80

4 ответа:

по состоянию на matplotlib v1.4.0rc4, a remove метод был добавлен в объект легенды.

использование:

ax.legend_.remove()

или

legend = ax.legend(...)
...
legend.remove()

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

вы можете использовать легенду set_visible способ:

ax.legend().set_visible(False)
draw()

это основано на ответе, предоставленном мне в ответ на аналогичный вопрос, который я имел некоторое время назад здесь

(Спасибо за этот ответ Джуни-мне жаль, что я не смог пометить вопрос как ответ... возможно, кто-то, кто имеет власть может сделать это для меня?)

Если вы хотите построить фрейм данных Pandas и хотите удалить легенду, добавьте legend=None в качестве параметра в команду plot.

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

df2 = pd.DataFrame(np.random.randn(10, 5))
df2.plot(legend=None)
plt.show()

вы должны добавить следующие строки кода:

ax = gca()
ax.legend_ = None
draw()

gca () возвращает текущий дескриптор осей и имеет это свойство legend_