Re: [Matplotlib-users] plotting all paths of a simple random walk
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
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?
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?
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?
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