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

У меня есть куча подзаголовков, и один я хочу содержать легенду (в каждом из других подзаголовков одинаковое количество дескрипторов и меток, поэтому мне просто нужна основная легенда для всех из них).

|plot|gap1|plot|
|plot|plot|plot|
|plot|gap2|plot|

Теперь, где gap1, я хочу поставить свою основную легенду. Я построил то же самое в первом подсюжете.

line1 = ax2.plot(x1,y2,'--',color='b',linewidth=2)
line2 = ax2.plot(x1,y2,'-',color='r')
ax2.legend((line1,line2),('line1','line2'),numpoints=1,loc='center')
l = line1[0]
l.remove()
l = line2[0]
l.remove()
ax2.set_axis_off()

Но это, кажется, не работает.

Теперь я просто хочу поместить легенду в центр подзаголовка ax2 (в промежутке1) и удалить все (оси, линии, галочки и т. д.), кроме легенды, которая в центре. Спасибо.


person Griff    schedule 05.04.2013    source источник


Ответы (1)


fig, axes_lst = plt.subplots(2, 1)

ln_1, ln_2 = axes_lst[0].plot(range(5), range(5), range(5), np.arange(5) ** 2)
axes_lst[1].legend((ln_1, ln_2), ('lin', 'quad'), loc='center')
plt.draw()

Дескрипторы, используемые при вызове легенды, не обязательно должны быть на axes, для которого вы вызываете legend.

введите здесь описание изображения

person tacaswell    schedule 05.04.2013
comment
Я хотел добавить axes_lst[1].set_axis_off() непосредственно перед plt.draw(). Спасибо @tcaswell. - person Griff; 06.04.2013
comment
Я только что имел дело с той частью, которая у вас не работала ;). Если бы это решило вашу проблему, могли бы вы принять это? - person tacaswell; 06.04.2013