Florian Leitner wrote:
> Hi; I've got a rather simple question. I want to (color) fill a step 
> plot below the line, but using the fill() function always creates 
> regular plots, not step plots, and fillstyle doesn't work as I'd expect 
> it to. How can I fill a step plot? Something like this:
> 
> import matplotlib.pyplot as plt
> x = [0.0,0.5,0.66,0.75,1.0]
> y = [0.72,0.72,0.61,0.43,0.33]
> plt.step(x, y, fillstyle="bottom") # doesn't work how I imagine...
> plt.axis([0.0,1.0,0.0,1.0])
> plt.show()
> 
> What I want is that the area below the step-plot line is color-filled, 
> but I seem to be unable to find a function for it. If I use plt.fill(), 
> it creates a polygon plot and it does not allow to use the kwarg 
> drawstyle="steps", so I get no further with this function either.
> 
> I guess it's a simple problem, but I'm having a bit of a hard time 
> wading though all the API, being completely new to matplotlib, so some 
> help would be very welcome!
> --Florian


It looks to me like there is no easy way to do it. This is a deficiency 
in the way steps are implemented at present.  The generation of the 
stepped path is buried in a Line2D helper method, and the path is not 
saved.   If it were, its x and y coordinates could be passed to 
fill_between, which would then provide the effect you want.

Unless and until some refactoring is done in mpl, you will have to 
manually generate the x and y coordinates corresponding to your stepped 
line instead of using plt.step.

It may be too much of a change to make to the API now, but I think that 
the step-generation should not be done in Line2D at all; it should be at 
the next level up.  The Line2D object should not be modifying the 
coordinates it is given.  At the very least, its get_path() should 
return the actual path it is drawing; at present it does not.  This 
latter change may be relatively easy.

Eric


> 
> 
> 
> **NOTA DE CONFIDENCIALIDAD** Este correo electrónico, y en su caso los 
> ficheros adjuntos, pueden contener información protegida para el uso 
> exclusivo de su destinatario. Se prohíbe la distribución, reproducción o 
> cualquier otro tipo de transmisión por parte de otra persona que no sea 
> el destinatario. Si usted recibe por error este correo, se ruega 
> comunicarlo al remitente y borrar el mensaje recibido.
> **CONFIDENTIALITY NOTICE** This email communication and any attachments 
> may contain confidential and privileged information for the sole use of 
> the designated recipient named above. Distribution, reproduction or any 
> other use of this transmission by any party other than the intended 
> recipient is prohibited. If you are not the intended recipient please 
> contact the sender and delete all copies.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to