add-semi-colons
add-semi-colons

Reputation: 18830

Python ggplot is not plotting dataframe

I am trying to plot the following data frame. X and Y are lists. After I prepare those lists I construct the data frame via dictionary. But when I plot it doesn't actually plot.

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()

And my data looks like this (both before melt and after melt)

      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

Upvotes: 0

Views: 541

Answers (1)

vrajs5
vrajs5

Reputation: 4126

It is working for me. Try following

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

Upvotes: 2

Related Questions