<br><br><div class="gmail_quote">El 29 de enero de 2013 20:37, Boris Vladimir Comi <span dir="ltr"><<a href="mailto:glez_b@comunidad.unam.mx" target="_blank">glez_b@comunidad.unam.mx</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma">Gracias por tomarte el tiempo en responder, ya estructure mis datos en la forma que me indicas y he obtneido el producuto deseado. Ahora mi preguntas es, si mi archivo tiene mas
de 30 trayectorias como las puedo graficar usando un for<br>
<br>
<br>
<br>
<br>
<div style="font-size:16px;font-family:Times New Roman">
<hr>
<div style="direction:ltr"><font color="#000000" face="Tahoma"><b>De:</b> Python-es [python-es-bounces+glez_b=<a href="mailto:comunidad.unam.mx@python.org" target="_blank">comunidad.unam.mx@python.org</a>] en nombre de Kiko [<a href="mailto:kikocorreoso@gmail.com" target="_blank">kikocorreoso@gmail.com</a>]<br>
<b>Enviado:</b> martes, 29 de enero de 2013 01:48 a.m.<br>
<b>Para:</b> La lista de python en castellano<br>
<b>Asunto:</b> Re: [Python-es] Dibujar trayectorias sobre un mapa usando matplotlib-basemap<br>
</font><br>
</div>
<div></div>
<div><br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma">
<div style="font-size:16px;font-family:Times New Roman">
<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma">
<div style="font-size:16px;font-family:Times New Roman">
<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma"><br>
#!/usr/bin/python<br>
#<span lang="en"><span>Project</span> <span>Storm</span><span>: Plot</span> <span>
trajectories</span> <span>of convective systems</span></span><br>
#<span lang="en"><span>import</span> <span>libraries</span></span><br>
<br>
import numpy as np<br>
from mpl_toolkits.basemap import Basemap<br>
import matplotlib.pyplot as pl<br>
<br>
#<span lang="en"><span> Plot</span> <span>a map</span> <span>for</span> <span>
Mexico</span></span><br>
<br>
m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, urcrnrlon=-80, resolution='c', area_thresh=1000.)<br>
m.bluemarble()<br>
m.drawcoastlines(linewidth=0.5)<br>
m.drawcountries(linewidth=0.5)<br>
m.drawstates(linewidth=0.5)<br>
<br>
#<span lang="en"><span>Draw</span> <span>parallels and meridians</span></span><br>
<br>
m.drawparallels(np.arange(10.,35.,5.))<br>
m.drawmeridians(np.arange(-120.,-80.,10.))<br>
m.drawmapboundary(fill_color='aqua')<br>
<br>
#Open file whit numpy<br>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
El código anterior es lo que quieres. A partir de aquí usaría:<br>
<br>
data = np.array([['19.70','-95.20','2/5/04 6:45 AM','1','-38','CCM'],
<p style="margin:0px;text-indent:0px">['19.70','-94.70','2/5/04 7:45 AM','1','-48','CCM'],</p>
<p style="margin:0px;text-indent:0px">['19.30','-93.90','2/5/04 8:45 AM','1','-60','CCM'],</p>
<p style="margin:0px;text-indent:0px">['19.00','-93.50','2/5/04 9:45 AM','1','-58','CCM'],</p>
<p style="margin:0px;text-indent:0px">['19.00','-92.80','2/5/04 10:45 AM','1','-50','CCM'],</p>
<p style="margin:0px;text-indent:0px">['19.20','-92.60','2/5/04 11:45 AM','1','-40','CCM'],</p>
<p style="margin:0px;text-indent:0px">['19.90','-93.00','2/5/04 12:45 PM','1','-43','CCM'],</p>
<p style="margin:0px;text-indent:0px">['20.00','-92.80','2/5/04 1:15 PM','1','-32','CCM'],</p>
<p style="margin:0px;text-indent:0px">['23.10','-100.20','30/5/04 4:45 AM','2','-45','SCME'],</p>
<p style="margin:0px;text-indent:0px">['23.20','-100.00','30/5/04 5:45 AM','2','-56','SCME'],</p>
<p style="margin:0px;text-indent:0px">['23.30','-100.00','30/5/04 6:45 AM','2','-48','SCME'],</p>
<p style="margin:0px;text-indent:0px">['23.30','-100.20','30/5/04 7:45 AM','2','-32','SCME'],</p>
<p style="margin:0px;text-indent:0px">['23.40','-99.00','31/5/04 3:15 AM','3','-36','SCM'],</p>
<p style="margin:0px;text-indent:0px">['23.50','-98.90','31/5/04 4:15 AM','3','-46','SCM'],</p>
<p style="margin:0px;text-indent:0px">['23.60','-98.70','31/5/04 5:15 AM','3','-68','SCM'],</p>
<p style="margin:0px;text-indent:0px">['23.70','-98.80','31/5/04 6:15 AM','3','-30','SCM']])</p>
<p style="margin:0px;text-indent:0px"></p>
<p style="margin:0px;text-indent:0px">latitude = data[:,0].astype(np.float)</p>
<p style="margin:0px;text-indent:0px">longitude = data[:,1].astype(np.float)</p>
<p style="margin:0px;text-indent:0px"><br>
</p>
## x, y no te hacen falta para nada en este contexto<br>
<p style="margin:0px;text-indent:0px"><br>
</p>
<p style="margin:0px;text-indent:0px">#Plot the points on the map, puedes usar un for. En este caso son solo tres casos y lo pongo explícito.<br>
</p>
<p style="margin:0px;text-indent:0px"><br>
</p>
<p style="margin:0px;text-indent:0px">pl.plot(longitude[data[:,3] == '1'], latitude[data[:,3] == '1'],'ro-') # El primer ¿sistema convectivo de mesoescala?<br>
</p>
<p style="margin:0px;text-indent:0px">pl.plot(longitude[data[:,3] == '2'], latitude[data[:,3] == '2'],'yo-') # el segundo<br>
</p>
<p style="margin:0px;text-indent:0px">pl.plot(longitude[data[:,3] == '3'], latitude[data[:,3] == '3'],'go-') # y el tercero<br>
</p>
<p style="margin:0px;text-indent:0px">pl.show()</p>
<br></div></div></div></div></blockquote><div><br></div></div>Hola, fíjate en qué es lo que cambia en las tres líneas de los plots anteriores. Cambia el número del caso/tormenta ('1', '2', '3') y el color de la línea para la trayectoria de la tormenta (r, y, g). Usa un for que recorra los posibles casos y usa colores diferentes para cada caso (<a href="http://matplotlib.org/api/colors_api.html">http://matplotlib.org/api/colors_api.html</a>) si quieres que tengan colores diferentes. Los posibles casos los puedes obtener usando un set. No te pongo el código de forma explícita para que lo pienses un poco. Si no eres capaz de conseguirlo vuelve a preguntar.<br>
<br>Saludos.<br>