Мені знайомі такі питання:
Matplotlib savefig з легендою поза сюжетом
Здається, що відповіді на ці запитання мають розкіш у тому, що ми можемо пограбувати з точним скороченням осі, щоб легенда підходила.
Однак скорочення осей не є ідеальним рішенням, оскільки це робить меншими дані, що робить його важче інтерпретувати; особливо коли його складний і багато чого відбувається ... отже, потрібна велика легенда
Приклад складної легенди в документації демонструє необхідність цього, оскільки легенда в їх сюжеті фактично повністю затьмарює кілька точок даних.
http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots
Що я хотів би зробити, це динамічно розширити розмір фігурного поля, щоб вмістити розширюється легенду фігури.
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-2*np.pi, 2*np.pi, 0.1)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(x, np.sin(x), label='Sine')
ax.plot(x, np.cos(x), label='Cosine')
ax.plot(x, np.arctan(x), label='Inverse tan')
lgd = ax.legend(loc=9, bbox_to_anchor=(0.5,0))
ax.grid('on')
Зверніть увагу, як остаточний ярлик "Зворотний загар" насправді знаходиться поза рамкою фігури (і виглядає погано відсіченим - не якість публікації!)
Нарешті, мені сказали, що це нормальна поведінка в R та LaTeX, тому я трохи розгублений, чому це так складно в python ... Чи є історична причина? Чи настільки бідний Матлаб з цього питання?
У мене (лише трохи) довша версія цього коду на пастібі http://pastebin.com/grVjc007
tight_layout()
слід змінити, щоб врахувати легенди.