我正在使用以下代码创建基于groupby的多个图:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
with PdfPages(r'F:\Sheyenne\Statistics\IDL_stats\time_series.pdf') as pdf:
for i, group in df.groupby('Allotment'):
plt.figure()
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
VI_plots=group.plot(x='Year', y=['NDII_Mean', 'RGR_Mean', 'SATVI_Mean', 'SWIR32_Mean', 'NDVI_Mean', 'MTVI_Mean'],title=str(i)).get_figure()
pdf.savefig(VI_plots)
plt.close(VI_plots)
print "Done Processing"
我想把这个传说带到情节之外,这就是我想用这条线做的事情:
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))
但实际上并没有把它拿出来。代码执行就像我想要的那样,除了那个部分,我无法弄清楚原因。
答案 0 :(得分:4)
我认为你对传说有矛盾的指示。告诉它loc='center left'
意味着你想要它在图中,而bbox_to_anchor
告诉它将它放在别处。此外,您的bbox_to_anchor
位置(1,0.5)实际上并未将图例从图中取出,而是将其置于右边缘。尝试使用
plt.legend(bbox_to_anchor=(1.5, 0.5))