matplotlib: Plotting a graph against time

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Durand

    matplotlib: Plotting a graph against time

    Hi,

    I'm trying to plot a simple graph against date or time using matplotlib. I've read about date_plot but I'm not really sure how to use it. At the moment, I have some data arranged into lists, where list1 contains x values (time) and list2 contains y values just like is needed for the normal plot function. The time values are simply the output of datetime.date.t oday(), etc which I don't mind changing the format of.

    My question is, how do I plot the graph with list1 on the x axis and list2 on the y axis. Using plot and unixtime I get a very ugly scale as is to be expected so I want to know how to use the date_plot function efficiently. At the moment, I'm only concerned about the actual plotting but help with Locater Ticks (Months and Years) is also very appreciated.

    Thanks a lot!
  • arsyed

    #2
    Re: matplotlib: Plotting a graph against time

    On Jul 19, 3:09 pm, Durand <dura...@gmail. comwrote:
    Hi,
    >
    I'm trying to plot a simple graph against date or time using matplotlib. I've read about date_plot but I'm not really sure how to use it. At the moment, I have some data arranged into lists, where list1 contains x values (time) and list2 contains y values just like is needed for the normal plot function. The time values are simply the output of datetime.date.t oday(), etcwhich I don't mind changing the format of.
    >
    My question is, how do I plot the graph with list1 on the x axis and list2 on the y axis. Using plot and unixtime I get a very ugly scale as is to be expected so I want to know how to use the date_plot function efficiently.At the moment, I'm only concerned about the actual plotting but help with Locater Ticks (Months and Years) is also very appreciated.
    >
    Thanks a lot!

    I'm not sure if this is what you're looking for, but here's a quick
    sample that uses plot_date to plot some random values.

    import pylab, random
    from datetime import datetime, timedelta

    today = datetime.now()

    dates = [today + timedelta(days= i) for i in range(10)]
    values = [random.randint( 1, 20) for i in range(10)]
    pylab.plot_date (pylab.date2num (dates), values, linestyle='-')


    Comment

    • Durand

      #3
      Re: matplotlib: Plotting a graph against time

      On Jul 20, 8:55 am, arsyed <ars...@gmail.c omwrote:
      On Jul 19, 3:09 pm, Durand <dura...@gmail. comwrote:
      >
      Hi,
      >
      I'm trying to plot a simple graph against date or time using matplotlib.. I've read about date_plot but I'm not really sure how to use it. At the moment, I have some data arranged into lists, where list1 contains x values (time) and list2 contains y values just like is needed for the normal plot function. The time values are simply the output of datetime.date.t oday(), etc which I don't mind changing the format of.
      >
      My question is, how do I plot the graph with list1 on the x axis and list2 on the y axis. Using plot and unixtime I get a very ugly scale as is tobe expected so I want to know how to use the date_plot function efficiently. At the moment, I'm only concerned about the actual plotting but help with Locater Ticks (Months and Years) is also very appreciated.
      >
      Thanks a lot!
      >
      I'm not sure if this is what you're looking for, but here's a quick
      sample that uses plot_date to plot some random values.
      >
      import pylab, random
      from datetime import datetime, timedelta
      >
      today = datetime.now()
      >
      dates = [today + timedelta(days= i) for i in range(10)]
      values = [random.randint( 1, 20) for i in range(10)]
      pylab.plot_date (pylab.date2num (dates), values, linestyle='-')
      Oooh, this is almost what I want but I'm not really sure how I'd
      incorporate this into real dates...
      If I have a list of dates like ['2008-07-18 14:36:53.494013 ',
      '2008-07-20 14:37:01.508990 ', '2008-07-28 14:49:26.183256 '], how would
      I convert it to a format that pylab can understand? When I tried
      type(datetime.n ow()) it gave me datetime.dateti me whereas the objects
      in this list are strings...Am I doing something wrong here?

      Comment

      Working...