Python ggplot没有绘制数据帧

时间:2015-03-19 09:07:53

标签: python r pandas ggplot2 python-ggplot

我正在尝试绘制以下数据框。 X和Y是列表。在我准备这些列表后,我通过字典构建数据框。但是当我绘制它时实际上并没有绘制。

df = pd.DataFrame({"day": day, "ndcg@k": x, "MAP@k": y})
df2 = pd.melt(df[['day', 'ndcg@k', 'MAP@k']], id_vars=['day'])
ggplot(aes(x='day', y='value', group='variable', shape='variable', colour='variable'), data=df2) + geom_line() + geom_point()

我的数据看起来像这样(在融化之前和融化之后)

      MAP@k       day    ndcg@k
0  0.201919  20150203  0.245559
1  0.198214  20150204  0.241085

        day variable     value
0  20150203   ndcg@k  0.245559
1  20150204   ndcg@k  0.241085
2  20150203    MAP@k  0.201919
3  20150204    MAP@k  0.198214

1 个答案:

答案 0 :(得分:2)

这对我有用。试试以下

import pandas as pd
from  ggplot import *

df = pd.DataFrame([{"day": 20150203, "ndcg@k": 0.245559, "MAP@k": 0.201919},
                   {"day": 20150204, "ndcg@k": 0.255559, "MAP@k": 0.191919},
                    {"day": 20150205, "ndcg@k": 0.2645559, "MAP@k": 0.181919},
                    {"day": 20150203, "ndcg@k": 0.275559, "MAP@k": 0.171919},
                    {"day": 20150204, "ndcg@k": 0.285559, "MAP@k": 0.161919},
                    {"day": 20150205, "ndcg@k": 0.295559, "MAP@k": 0.151919}])

df2 = pd.melt(df[['day', 'ndcg@k', 'MAP@k']], id_vars=['day'])
df2.day = pd.to_datetime(df2.day, format = '%Y%m%d')
ggplot(aes(x='day', y='value', group='variable', shape='variable', colour='variable'), data=df2) + geom_line() + geom_point() + scale_x_date(labels = date_format('%Y-%m-%d %H:%M'))

enter image description here