Re: plot time on X axis

2017-06-07 Thread Peter Pearson
On Wed, 07 Jun 2017 09:20:25 -0300, jorge.conr...@cptec.inpe.br wrote:
[snip]
> I was an IDL user and I'm using Python. I have several meteorological 
> daily time seriee for several years. Please can someone help me. I would 
> like to plot on X axis only the values o the year.

Is matplotlib allowed?  Example (Python 2.7)(Note that most of
this example is just parsing data, not plotting:):

from matplotlib import pyplot as plt
from datetime import date
import re

dwcd = """
2014-06-01:  82.00% ( 1)  89.50% ( 2)  39.00% ( 1)  0.259
2014-07-01: 100.00% ( 1)  89.00% ( 3)   0.00% ( 1)  0.264
2014-08-01:  79.50% ( 2)  85.50% ( 4)  53.00% ( 1)  0.273
2014-09-01:  85.00% ( 3)  98.00% ( 6)  87.00% ( 3)  0.495
2014-10-01:  86.00% ( 7)  97.00% (10)  82.50% ( 4)  0.553
2014-11-01:  93.50% (10)  98.50% (10)  39.00% ( 6)  0.215
2014-12-01:  97.00% (10) 100.00% (10)  66.50% ( 6)  0.025
2015-01-01:  72.50% (12)  94.00% (11)  39.00% ( 6)  0.025
2015-02-01:  66.00% (12)  88.50% (12)  58.50% ( 8)  0.248
2015-03-01:  79.00% (15)  95.50% (12)  77.00% ( 9)  0.360
2015-04-01:  87.00% (15)  95.50% (12)  68.00% ( 9)  0.039
2015-05-01:  85.50% (18)  90.00% (12)  87.00% ( 9)  0.479
"""

def get_time(r):
r = r.strip()
return date(year=int(r[0:4]),
month=int(r[5:7]),
day=int(r[8:10]))

def get_field(r, field_name):
m = re.match(r"(?P[^:]+): +"
 r"(?P[0-9.]+)% +"
 r"\( *(?P[0-9]+)\) +"
 r"(?P[0-9.]+)% +"
 r"\( *(?P[0-9]+)\) +"
 r"(?P[0-9.]+)% +"
 r"\( *(?P[0-9]+)\) +"
 r"(?P[0-9.]+)", r.strip())
return m.group(field_name)

x = [get_time(r) for r in dwcd.split("\n") if r]
y_a = [float(get_field(r, "value_a")) for r in dwcd.split("\n") if r]
y_b = [float(get_field(r, "value_b")) for r in dwcd.split("\n") if r]
y_c = [float(get_field(r, "value_c")) for r in dwcd.split("\n") if r]

plt.plot(x, y_a, color="red", label="Group A")
plt.plot(x, y_b, color="green", label="Group B")
plt.plot(x, y_c, color="blue", label="Group C")

plt.plot(date(2015,5,20), 101, marker="x", color="white")  

plt.ylabel("Y label")
plt.legend(loc="upper left")
fig = plt.gcf()
fig.autofmt_xdate()
plt.show()


-- 
To email me, substitute nowhere->runbox, invalid->com.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: plot time on X axis

2017-06-07 Thread Paul Barry
Take a look at Jake VanderPlas's book, which is available online as
free-to-read: https://github.com/jakevdp/PythonDataScienceHandbook

See Chapter 3 (and 4).

On 7 June 2017 at 13:20,  wrote:

>
> Hi,
>
> I was an IDL user and I'm using Python. I have several meteorological
> daily time seriee for several years. Please can someone help me. I would
> like to plot on X axis only the values o the year.
>
> Thanks,
>
> Conrado
> --
> https://mail.python.org/mailman/listinfo/python-list
>



-- 
Paul Barry, t: @barrypj  - w:
http://paulbarry.itcarlow.ie - e: paul.ba...@itcarlow.ie
Lecturer, Computer Networking: Institute of Technology, Carlow, Ireland.
-- 
https://mail.python.org/mailman/listinfo/python-list


plot time on X axis

2017-06-07 Thread jorge . conrado


Hi,

I was an IDL user and I'm using Python. I have several meteorological 
daily time seriee for several years. Please can someone help me. I would 
like to plot on X axis only the values o the year.


Thanks,

Conrado
--
https://mail.python.org/mailman/listinfo/python-list