【发布时间】:2015-10-01 11:24:11
【问题描述】:
我有一个像这样的熊猫数据框:
Date Allotment NDII_Mean NDVI_Mean RGR_Mean SATVI_Mean
1984137 Arnston -0.053650 0.414868 0.938309 0.332712
1984185 Arnston 0.074928 0.558329 0.867951 0.334555
1984249 Arnston -0.124691 0.352225 1.041513 0.331821
1985139 Arnston -0.075537 0.468092 0.929414 0.383750
1985171 Arnston 0.017400 0.493443 0.889835 0.314717
1986206 Annex 0.151539 0.626690 0.775202 0.332507
1986238 Annex 0.142235 0.604764 0.823083 0.303600
1987241 Annex -0.005423 0.506760 0.911124 0.338675
1987257 Annex -0.058166 0.449052 0.961348 0.336879
我想根据分配进行绘图,所以我需要使用 groupby。因此,对于每个分配,我想要 X 轴上的日期,以及名称中具有平均值的所有四列,在图表上显示为线条,它们在 Y 轴上的值。然后我会将它们保存为 pdf,尽管如果有人知道另一种方式,我没有必要这样做。我可以使用此代码绘制一个值(在此示例中我将使用 NDII_Mean),但我想绘制所有四列而不仅仅是一列。我使用的代码是:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
df=pd.read_csv('C:/Users/Stefano/Documents/Hurst_plots.csv')
with PdfPages('C:/Users/Stefano/Documents/Hurst_plots.pdf') as pdf:
for i, group in df.groupby('Allotment'):
plt.ylabel('Values')
plt.figure()
Hurst_plots=group.plot(x='Date', y='NDII_Mean',title=str(i)).get_figure()
pdf.savefig(Hurst_plots)
这是其中一个图的样子(与显示的数据不同,因为我缩短了示例表):
编辑:
这通过添加编辑这一行来工作
Hurst_plots=group.plot(x='Date', y=['NDII_Mean', 'RGR_Mean', 'SATVI_Mean', 'SWIR32_Mean'],title=str(i)).get_figure()
但有人知道如何将图例完全移出图表吗?
【问题讨论】:
标签: python pandas matplotlib