2014-12-10 2 views
-1

прямо сейчас по умолчанию matplotlib legend находится в верхнем правом углу всех моих подзаговоров (например, группа из 3 горизонтально на 3 по вертикали).метка позиции matplotlib над подзаголовком

Однако в некоторых случаях легенда скрывает некоторые линии тренда, поэтому я хотел бы разместить легенду чуть выше самого подзаголовка, возможно ли это?

ответ

0

Местоположение легенды указывается с использованием аргумента loc до legend. Вы можете попробовать использовать опцию 'best' и посмотреть, не позволяет ли она линии. Если вы хотите поместить окно легенды за пределы области графика, вы можете взглянуть на технику, описанную в legend guide.

Вот сетка сюжетных три-на-три с одной легендой справа вверху над участками:

import matplotlib.pyplot as plt 
for i in range(9): 
    plt.subplot(3, 3, i+1) 
    plt.plot([0, 1], [0, 1]) 
plt.subplot(3, 3, 3) 
plt.legend(['test'], bbox_to_anchor=(0, 1, 1, 0.5), mode='expand') 
plt.tight_layout() 

enter image description here

+0

после просмотра в руководстве легенды, я не могу увидеть любую технику, где результатом является легенда поверх подзаголовка (а не внутри нее, блокирующая линию тренда). Можете ли вы указать мне пример вывода и кода? – yoshiserry

+0

Посмотрите пример в разделе [«Местоположение легенды»] (http://matplotlib.org/users/legend_guide.html#legend-location). Он имеет подзаголовки и легенду за пределами области подзаголовка. – chthonicdaemon

+0

Спасибо @chthonicdaemon - где я могу узнать больше о «bbox_to_anchor», который, как представляется, отвечает за: 1) позиционирование легенды над подзаголовком и 2) позиционирование текста, так что он находится в центре слева или выровнен центр (когда он находится над подзаголовком). – yoshiserry

Смежные вопросы