Как разместить легенду за пределами графика Matplotlib


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

К счастью, это легко сделать с помощью функции matplotlib.pyplot.legend() в сочетании с аргументом bbox_to_anchor .

В этом руководстве показано несколько примеров использования этой функции на практике.

Пример 1. Поместите легенду в верхний правый угол

Следующий код показывает, как разместить легенду в правом верхнем углу за пределами графика Matplotlib:

import matplotlib.pyplot as plt

#create plot
plt.subplot (211)
plt.plot([2, 4, 6], label=" First Data ")
plt.plot([6, 4, 2], label=" Second Data ")

#place legend in top right corner
plt.legend(bbox_to_anchor=(1,1), loc=" upper left ")

#show plot
plt.show()

Обратите внимание, что аргумент loc указывает Matplotlib поместить левый верхний угол строки легенды в координаты (x, y) (1,1) на графике.

Пример 2. Поместите легенду в нижний правый угол

В следующем коде показано, как разместить легенду в правом нижнем углу за пределами графика Matplotlib:

import matplotlib.pyplot as plt

#create plot
plt.subplot (211)
plt.plot([2, 4, 6], label=" First Data ")
plt.plot([6, 4, 2], label=" Second Data ")

#place legend in top right corner
plt.legend(bbox_to_anchor=(1,0), loc=" lower left ")

#show plot
plt.show() 

Обратите внимание, что аргумент loc указывает Matplotlib поместить левый нижний угол строки легенды в координаты (x, y) (1,0) на графике.

Пример 3: Разместите легенду над графиком

Следующий код показывает, как разместить легенду над графиком Matplotlib:

import matplotlib.pyplot as plt

#create plot
plt.subplot (211)
plt.plot([2, 4, 6], label=" First Data ")
plt.plot([6, 4, 2], label=" Second Data ")

#place legend above plot
plt.legend(bbox_to_anchor=(0, 1, 1, 0), loc=" lower left", mode=" expand", ncol= 2 )

#show plot
plt.show() 

Обратите внимание, что аргумент режима указывает Matplotlib расширить легенду до длины графика, а аргумент ncol указывает Matplotlib размещать метки легенды в 2 столбцах.

Мы также можем не указывать аргументы режима и ncol , если просто хотим поместить легенду в верхний левый угол над графиком:

Дополнительные ресурсы

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

Как изменить размер шрифта на графике Matplotlib
Как удалить тики из графиков Matplotlib
Как показать линии сетки на графиках Matplotlib