Ruchoma legenda matplotlib poza osią powoduje jej odcięcie przez pole figury
Znam następujące pytania:
Matplotlib savefig z legendą poza fabułą
Wydaje się, że odpowiedzi w tych pytaniach mają luksus bycia w stanie bawić się z dokładnym zmniejszaniem osi, aby legenda pasowała.
Zmniejszenie osi nie jest jednak idealnym rozwiązaniem, ponieważ sprawia, że dane są mniejsze, co w rzeczywistości utrudnia ich interpretację; szczególnie, gdy jego kompleks i wiele się dzieje ... stąd potrzeba dużej legendy
Przykład złożonej legendy w dokumentacji dowodzi tego, ponieważ legenda na ich wykresie w rzeczywistości całkowicie przesłania wiele punktów danych.
http://matplotlib.sourceforge.net/users/legend_guide.html#legend-of-complex-plots
To, co chciałbym zrobić, to dynamicznie rozszerzyć rozmiar pola rysunku, aby dostosować się do legendy rozwijającej się figury.
<code>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') </code>
Zwróć uwagę, że ostateczna etykieta „Inverse tan” znajduje się poza polem rysunku (i wygląda źle - nie jakość publikacji!)
W końcu powiedziano mi, że jest to normalne zachowanie w R i LaTeX, więc jestem trochę zdezorientowany, dlaczego jest to tak trudne w pythonie ... Czy jest jakiś historyczny powód? Czy Matlab jest równie ubogi w tej kwestii?
Mam (tylko nieznacznie) dłuższą wersję tego kodu na pastebinhttp://pastebin.com/grVjc007