Re: [Matplotlib-users] plotting all paths of a simple random walk

2011-06-22 Thread Paul Menzel
Am Dienstag, den 21.06.2011, 19:17 -0400 schrieb josef.p...@gmail.com:
 On Tue, Jun 21, 2011 at 5:25 PM, Paul Menzel wrote:
  Am Dienstag, den 21.06.2011, 09:43 -0400 schrieb josef.p...@gmail.com:
  On Tue, Jun 21, 2011 at 8:47 AM, Paul Menzel wrote:
 
   I want to plot all paths of a simple random walk and wrote the following
   recursive program based on the Path tutorial [1].
  
  import matplotlib.pyplot as plt
  from matplotlib.path import Path
  import matplotlib.patches as patches
  
  def draw(a, b, c, d):
  verts = [
  (a, b),
  (c, d),
  (0, 0),
  ]
  
  codes = [
  Path.MOVETO,
  Path.LINETO,
  Path.CLOSEPOLY
  ]
  
  path = Path(verts, codes)
  patch = patches.PathPatch(path)
  ax.add_patch(patch)
  
  def irrpfad(a, b):
  if a  length:
  draw(a, b, a + 1., b + 1.)
  draw(a, b, a + 1., b - 1.)
  irrpfad(a + 1, b + 1)
  irrpfad(a + 1, b - 1)
  
  
  length = 5 # 20 not possible to run
  
  fig = plt.figure()
  ax = fig.add_subplot(111)
  irrpfad(0, 0)
  ax.set_xlim(0,length)
  ax.set_ylim(-length,length)
  plt.show()
  
   Using 20 for `length` stalls my system and the memory used seems to be
   over 1 GB. I guess this is what you guess using something recursive.
   What optimizations are there. I am drawing each line after another so
   probably too many separate paths instead of one. Being a Python noob I
   do not know if I can append something to a path. Looking at the API
   documentation [2] I did not see such a method.
  
   Being also new to Matplotlib I may have also overlooked more appropriate
   methods/classes.
  
   So to summarize my message,
  
   1. How can I add lines to a path?
   2. Are recursive functions bad in Python/Matplotlib?
   3. Are there better approaches?
 
  I'm not sure what you are trying to show, but my impression is that you are
  just producing the grid between integers (move up,down),
 
  Yeah, that is about right [1].
 
  and paths will not show up because the lines are all on top of each other.
 
  That is not true. My program displays everything correctly when using
  for example `length = 5`.
 
  The number of all paths looks very large to me and even without matplotlib
  overhead, this might soon run into problems.
 
  That is what thought too.
 
  for example;
  for length= 15; I get 65534 moves in the random walks, but only 240 unique 
  moves
  for length= 20; I get 2097150 moves in the random walks, but only 420 
  unique moves
  plotting only unique moves is fast (count of moves might work to color the
  amount of traffic on each move)
 
  I am sorry, I think that in my program no section is drawn more than
  once.
 
 each append below corresponds to one call to your draw function
 
 Do you want to draw all possible routes, or the road network?

I am sorry. I now do understand your previous sentences correctly. Yes I
am aware that patches overlap and I only need to draw the road network.

 I only see the road network in the plot

Yes that is correct and intended.

 (and partially the traffic density with alpha1).

Nice suggestion. Thank you.

  rw_moves = []
  def irrpfad2(a, b):
  if a  length:
  rw_moves.append((a, b, a + 1, b + 1))
  rw_moves.append((a, b, a + 1, b - 1))
  irrpfad2(a + 1, b + 1)
  irrpfad2(a + 1, b - 1)
 
  length = 20 # 20 not possible to run
  irrpfad2(0, 0)
 
  Thank you for the example, but now I need to somehow also add the codes
  to be able to pass this to Path.
 
  I don't know any answer to the matplotlib specific part
 
  Thank you for your other answers.
 
   Please find the source also attached. I am using python-matplotlib
   1.0.1-2 from Debian Sid/unstable.


Thanks,

Paul


   [1] http://matplotlib.sourceforge.net/users/path_tutorial.html
   [2] 
   http://matplotlib.sourceforge.net/api/path_api.html#matplotlib.path.Path
  [3] https://secure.wikimedia.org/wikipedia/en/wiki/Random_walk


signature.asc
Description: This is a digitally signed message part
--
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net

[Matplotlib-users] twinned and shared Axis

2011-06-22 Thread Matthias Queitsch
Hello,
i have a small problem sharing axes with twinned subplots.

Here is a code snippet:

ax = fig.add_subplot(212, sharex = bx)
ax.plot() 
grid()
cx = ax.twinx()
cx.plot() 



The problem is, that both axis are independent. So on the left side, the tick 
steps are 0.05 and on the right side 0.1. 
The gridlines of the ax plot also do not match to the tickmarks on the right 
side. How can i fix that?

Greeting 

Matthias


--
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] gimmicks/eye candy: Is for example fading possible?

2011-06-22 Thread Michael Droettboom
matplotlib doesn't currently support gradients.  Patches welcome!  :)  
It's probably a lot of work to get it working across all backends, but 
following the pattern of how hatches are handled now would probably be a 
good guide.


Mike

On 06/21/2011 07:18 PM, Paul Menzel wrote:

Dear Matplotlib folks,


is it possible in Matplotlib to add eye candy or gimmicks to the plots
like fading? For example if I want to just show a subpart(?) of a plot
this would like “cool”. (I am pretty sure that opinions differ if such
things are useful or not, but please leave this out of the discussion.)

It looks like PGF/TikZ supports such things (manual [1], page 206) and
therefore I am wondering if Matplotlib can do this too?


Thanks,

Paul


[1] 
http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf


--
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev


___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users



--
Michael Droettboom
Science Software Branch
Space Telescope Science Institute
Baltimore, Maryland, USA

--
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] gimmicks/eye candy: Is for example fading possible?

2011-06-22 Thread John Hunter
On Wed, Jun 22, 2011 at 8:30 AM, Michael Droettboom md...@stsci.edu wrote:
 matplotlib doesn't currently support gradients.  Patches welcome!  :)  It's
 probably a lot of work to get it working across all backends, but following
 the pattern of how hatches are handled now would probably be a good guide.

There is however, the gradient hack, eg

http://matplotlib.sourceforge.net/examples/pylab_examples/gradient_bar.html

JDH

--
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] gimmicks/eye candy: Is for example fading possible?

2011-06-22 Thread Benjamin Root
On Wed, Jun 22, 2011 at 9:15 AM, John Hunter jdh2...@gmail.com wrote:

 On Wed, Jun 22, 2011 at 8:30 AM, Michael Droettboom md...@stsci.edu
 wrote:
  matplotlib doesn't currently support gradients.  Patches welcome!  :)
 It's
  probably a lot of work to get it working across all backends, but
 following
  the pattern of how hatches are handled now would probably be a good
 guide.

 There is however, the gradient hack, eg

 http://matplotlib.sourceforge.net/examples/pylab_examples/gradient_bar.html

 JDH


There are also some neat tricks you can do with Agg filters.  Here is an
example:

http://matplotlib.sourceforge.net/examples/pylab_examples/demo_agg_filter.html

Ben Root
--
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today.
http://p.sf.net/sfu/quest-sfdev2dev___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users