我是python和pandas的新手,我有以下DataFrame
。
如何绘制DataFrame
,其中每个ModelID
都是一个单独的绘图,saledate
是x轴,MeanToDate
是y轴?
尝试
data[40:76].groupby('ModelID').plot()
DataFrame
发布于 2013-05-05 02:05:33
您可以通过循环遍历groupby
中的组来绘制地块
import matplotlib.pyplot as plt
for title, group in df.groupby('ModelID'):
group.plot(x='saleDate', y='MeanToDate', title=title)
有关使用pandas数据帧绘图的更多信息,请参见:
http://pandas.pydata.org/pandas-docs/stable/visualization.html
以及循环遍历groupby-object:
http://pandas.pydata.org/pandas-docs/stable/groupby.html#iterating-through-groups
发布于 2014-03-13 11:49:29
聚合示例:
如果熊猫有像ggplot这样的色彩美学,我想做一些类似以下的事情:
aggregated = df.groupby(['model', 'training_examples']).aggregate(np.mean)
aggregated.plot(x='training_examples', y='accuracy', label='model')
(列: model为字符串,training_examples为整数,accuracy为小数)
但这只会造成混乱。
多亏了joris的回答,我最终得到了:
for index, group in df.groupby(['model']):
group_agg = group.groupby(['training_examples']).aggregate(np.mean)
group_agg.plot(y='accuracy', label=index)
我发现title=
只是在每次循环迭代中替换了图的单个标题,但是label=
做了您所期望的事情--当然是在运行plt.legend()
之后。
https://stackoverflow.com/questions/16376159
复制相似问题