Nyx*_*nyx 18 python numpy scipy python-2.7 pandas
我是python和pandas的新手,并且有以下内容DataFrame
.
如何绘制DataFrame
每个ModelID
单独的图的位置,saledate
是x轴并且MeanToDate
是y轴?
尝试
data[40:76].groupby('ModelID').plot()
Run Code Online (Sandbox Code Playgroud)
数据帧
jor*_*ris 24
您可以通过循环遍历以下组来制作绘图groupby
:
import matplotlib.pyplot as plt
for title, group in df.groupby('ModelID'):
group.plot(x='saleDate', y='MeanToDate', title=title)
Run Code Online (Sandbox Code Playgroud)
有关使用pandas数据框绘图的更多信息,请参阅:
http://pandas.pydata.org/pandas-docs/stable/visualization.html
以及循环遍历groupby-object:http:
//pandas.pydata.org/pandas-文档/稳定/ groupby.html#迭代,通组
chb*_*own 10
聚合示例:
如果pandas有像ggplot这样的颜色审美,我想做类似下面的事情:
aggregated = df.groupby(['model', 'training_examples']).aggregate(np.mean)
aggregated.plot(x='training_examples', y='accuracy', label='model')
Run Code Online (Sandbox Code Playgroud)
(列:model是一个字符串,training_examples是一个整数,精度是十进制)
但这只会产生一团糟.
感谢joris的回答,我最终得到了:
for index, group in df.groupby(['model']):
group_agg = group.groupby(['training_examples']).aggregate(np.mean)
group_agg.plot(y='accuracy', label=index)
Run Code Online (Sandbox Code Playgroud)
我发现这title=
只是在每个循环迭代中替换了单个标题的情节,但是label=
当你运行之后,它会做你所期望plt.legend()
的.