Saya akrab dengan pertanyaan-pertanyaan berikut:
Matplotlib savefig dengan legenda di luar plot
Cara mengeluarkan legenda dari plot
Tampaknya jawaban dalam pertanyaan-pertanyaan ini memiliki kemewahan untuk bisa bermain-main dengan penyusutan sumbu yang tepat sehingga legenda cocok.
Mengecilkan sumbu, bagaimanapun, bukanlah solusi yang ideal karena membuat data lebih kecil sehingga sebenarnya lebih sulit untuk ditafsirkan; terutama ketika kompleks dan ada banyak hal yang terjadi ... maka perlu legenda besar
Contoh legenda kompleks dalam dokumentasi menunjukkan perlunya hal ini karena legenda dalam plot mereka benar-benar mengaburkan beberapa titik data.
http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots
Apa yang ingin saya lakukan adalah secara dinamis memperluas ukuran kotak gambar untuk mengakomodasi legenda angka yang sedang berkembang.
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')
Perhatikan bagaimana label akhir 'Inverse tan' sebenarnya di luar kotak gambar (dan terlihat sangat terpotong - bukan kualitas publikasi!)
Akhirnya, saya telah diberitahu bahwa ini adalah perilaku normal dalam R dan LaTeX, jadi saya sedikit bingung mengapa ini sangat sulit dengan python ... Apakah ada alasan historis? Apakah Matlab sama-sama miskin dalam hal ini?
Saya memiliki (hanya sedikit) versi yang lebih panjang dari kode ini di pastebin http://pastebin.com/grVjc007
tight_layout()
harus diubah untuk memperhitungkan legenda.