Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Python by (50.2k points)

I want to plot the following data frame. X and Y list. After I make those lists I assemble the data frame via the 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 information looks like this:

      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 Answer

0 votes
by (108k points)

Your code is working for me. Try to execute your code in this manner:

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

Interested in learning Python? Enroll in our Python Course now!

Related questions

0 votes
1 answer
0 votes
4 answers
0 votes
1 answer
asked Sep 26, 2019 in Python by Sammy (47.6k points)

Browse Categories

...