2015-09-23 2 views
0

У меня есть очень простой вопрос, который я не могу найти ответ на:Matlplotlib участок с врезкой: сделать легенду в исходной оси

Использования Matplotlib я сюжет что-то в основном сюжете, а потом еще что-то в качестве вставки с помощью например

a = plt.axes([.2, .64, .28, .24]) 

Но после того, что я хочу, чтобы построить легенду в основном сюжете снова (потому что легенда содержит что-то найти в то же время).

Как это сделать? Как в том, как вернуться к первоначальному сюжету и сделать легенду?

Я пробовал разные вещи, включая sca, но ничего не сработало.

ответ

2

plt.sca(main_ax) должно было работать. Обратите внимание: если вы не указали метку для кривой/plot/etc, она не будет отображаться, если вы вызываете только plt.legend(). (Вместо этого вам нужно будет сделать plt.legend([line], [label]), или еще лучше, позвоните по номеру plot(x, y, label='some label').)

Однако лучше подойти к проблеме по-другому.

Это одна из многих причин, почему вы часто видите, что люди рекомендуют избегать интерфейса pyplot и использовать методы Axes/Figure. Это дает понять, какие оси вы используете.

Например:

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 
ax.plot(range(10), label='Curve 1') 

inset = fig.add_axes([.2, .64, .28, .24]) 
inset.scatter(range(3), range(3)) 

ax.legend() 

plt.show() 

enter image description here

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