[Matplotlib-users] Removing text from a figure

2013-02-12 Thread mameghani
Does anyone know if the following error message is a matplotlib bug or is it
me making a mistake? 
Is there an correct/alternative way to remove (or replace) text? Thank you,
Raphael 

from matplotlib.figure import Figure 
fig = Figure() 
caption = fig.suptitle("test") 
caption.remove() 

Traceback (most recent call last): 
  File "", line 1, in  
caption.remove() 
  File "C:\Programme\Python27\lib\site-packages\matplotlib\artist.py", 
line 134, in remove 
raise NotImplementedError('cannot remove artist') 
NotImplementedError: cannot remove artist 



--
View this message in context: 
http://matplotlib.1069221.n5.nabble.com/Removing-text-from-a-figure-tp40424.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Removing text from a figure

2013-02-12 Thread mameghani
My temporary solution is to clear the figure via clf() and to recreate the
plot without the elements I do not want any more.



--
View this message in context: 
http://matplotlib.1069221.n5.nabble.com/Removing-text-from-a-figure-tp40424p40427.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] help: matplotlib.sankey: linking flows from multiple prior sub-diagrams and crossing flows

2013-02-12 Thread Aleix Altimiras
Hi List,

I wonder whether anybody has tried to draw the following idea with a sankey
diagram (but if you are aware of another way to draw the following, I am
open to suggestions):
I have several systems which are all linked so that part of the outputs of
each of the systems becomes part of the inputs of each of the others. So,
each system exchanges 2 flows with each of the other systems (an output
which becomes the other's input and vice-verse). This implies that some of
the flows will have to cross.

I tried many combinations to connect the flows to each other but I did not
manage to connect them all. In a 3 systems diagram, I managed at best to
connect 2 single flows: one from the 2nd diagram to the 1st and one from
the third to the second. The problem is that, no matter which order I gave
to the flows, I had never been able to connect both input and output
between any sub-diagram (maybe because matplotlib.sankey does not
automatically connect the flows when they have to cross?)

you can find the diagrams that I managed to draw here:
https://dl.dropbox.com/u/45960790/World/sankeys.7z

I would appreciate any help to connect all the remaining flows.

I think that this could be solved if it was allowed to explicitly state
more than one flow to connect but I have no clue whether it is possible to
implement:
Currently (as I have understood it), one can only specify a single "prior"
diagram and a single flow to be connected. So it would be nice to:
-- declare several flows to "connect" to the "prior" diagram; and also
-- declare several "prior" diagrams for which several flows could be
connected.

I guess this would be the easiest way to connect all flows from the
sub-diagrams.
Of course, this presupposes that crossing the flows is allowed. In case it
is not, can matplotlib.sankey be hacked to allow that?

Thanks a lot,

Aleix
--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Draw paths on map using matplotlib-basemap

2013-02-12 Thread Boris Vladimir Comi


Thank you for your ideas, I leave the correct code to plot trajectories of any 
object, in my case I have drawn the trajectories of convective storms.

  1.  # --- Construimos el mapa ---
  2.
  3.  import numpy as np
  4.  from mpl_toolkits.basemap import Basemap
  5.  import matplotlib.pyplot as plt
  6.  from PIL import *
  7.  fig = plt.figure(figsize=(12,12))
  8.
  9.  ax = fig.add_axes([0.1,0.1,0.8,0.8])
  10.
  11. m = Basemap(projection='cyl', llcrnrlat=12, urcrnrlat=35,llcrnrlon=-120, 
urcrnrlon=-80, resolution='c', area_thresh=1000.)
  12.
  13. m.bluemarble()
  14. m.drawcoastlines(linewidth=0.5)
  15. m.drawcountries(linewidth=0.5)
  16. m.drawstates(linewidth=0.5)
  17.
  18. # --- Dibujamos paralelos y meridianos ---
  19.
  20. m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1])
  21. m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1])
  22. m.drawmapboundary(fill_color='aqua')
  23.
  24. # --- Abrimos el archivo que contiene los datos ---
  25.
  26. import pandas as pd
  27.
  28. df = pd.read_csv('scm-2004.csv')
  29. for evento, group in df.groupby(['evento']):
  30. latitude = group.lat.values
  31. longitude = group.lon.values
  32. x,y = m(longitude, latitude)
  33. plt.plot(x,y,'y-',linewidth=2 )
  34. plt.xlabel('Longitud')
  35. plt.ylabel('Latitud')
  36. plt.title('Trayectorias de Sistemas Convectivos 2004')
  37.
  38.
  39.
  40. plt.savefig('track-2004.jpg', dpi=100)

With the above code, I get the desired figure. 60 paths drawn on the map of 
México.

I have only one last question: how could indicate the start of each of the 
storms, someone has an idea how I can do this?

--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Removing text from a figure

2013-02-12 Thread Benjamin Root
On Tue, Feb 12, 2013 at 5:09 AM, mameghani  wrote:

> Does anyone know if the following error message is a matplotlib bug or is
> it
> me making a mistake?
> Is there an correct/alternative way to remove (or replace) text? Thank you,
> Raphael
>
> from matplotlib.figure import Figure
> fig = Figure()
> caption = fig.suptitle("test")
> caption.remove()
>
> Traceback (most recent call last):
>   File "", line 1, in 
> caption.remove()
>   File "C:\Programme\Python27\lib\site-packages\matplotlib\artist.py",
> line 134, in remove
> raise NotImplementedError('cannot remove artist')
> NotImplementedError: cannot remove artist
>
>
>
Heh, strange... it looks like most artist objects don't actually define a
remove function.  I suppose you could do "fig._suptitle = None" in the
meantime, though.

Ben Root
--
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users