15
votes

I'm really new to using python as a data analysis tool, and it's my first time ever dealing with time series. I have a data set which has dates in the first column, and a "result" integer which is either 1 or 0. The date column was successfully converted to a time object. I tried to plot the values directly using matplotlib's plot function, but that did not work.. Sample:

    Date       Result
2017-01-06     0.0
2017-01-06     1.0
2017-01-06     0.0
2017-01-07     0.0
2017-01-07     0.0

I tried using df.plot(), but the resulting plot has very undesirable results.

What I want at the end of the day is dates on the x axis, and the "result" on the y axis. Where am I going wrong? What's wrong with what I'm doing? EDIT: Here's the graph

1
You should, please, show us your code. Otherwise, how can we know what you might be doing incorrectly? - Bill Bell
well what I did was just use this newly created df and simply used df.plot(), Resulting graph has no dates i X axis, only a range 0 -> 2000 - RedaBitar
The fact that you have something called df suggests the use of pandas. Then, in addition to that, you have only two distinct dates. I'm wondering what kind of plot you expect to get, and also exactly what you did. - Bill Bell
I did use pandas, and the dataframe is a simple 2 column df, Date column and result column, with values of either 0 or 1. I wanna plot the values by time, for every timestamp. - RedaBitar
try df.set_index('Date').plot() or df.plot(x='Date', y='Result'). I guess it's because of the plot use index of df as x-axis. So for your df, it defaults 0->2000. So set the 'Date' columns as index and try again - heyu91

1 Answers

32
votes

Please use

df.set_index('Date').plot()

or

df.plot(x='Date', y='Result')

because of the plot by default use index of df as the x-axis, so you should set the 'Date' column as the index, or specify which column to use as the x-axis.

see more at pandas.DataFrame.plot