Dear Benjamin,

thank you very much for your explanations, it really helped me to get
a better understanding of what's going on!

I've now tried to reverse the zpos list, i.e. instead of using
[0,1,2,3,4] as the z-value for the collections I tried to plot them as
[4,3,2,1,0] but this didn't help either...

I recall that the wrong stacking has been an issue for longer, this is
why I used a transparency setting in order to "hide" this bug.

Yet, the other bug with the wrongfully closed polygons is new: I
didn't have this a couple months back, when I created this plot for
the first time, see attachments.

Again, any help is deeply appreciated!

Best regards, Daniel

2011/1/8 Benjamin Root <ben.r...@ou.edu>:
> On Sat, Jan 8, 2011 at 4:07 PM, Daniel Mader
> <danielstefanma...@googlemail.com> wrote:
>>
>> Hello,
>>
>> I have a problem with the 3D plotting of PolyCollections with
>> python-matplotlib-1.0.0 (on openSUSE 11.3 x86_64):
>>
>> instead of being correctly stacked as in the example
>> http://matplotlib.sourceforge.net/examples/mplot3d/polys3d_demo.html,
>> the plots are weirdly overlapping. The example works OK for me but I
>> need a PolyCollection in order to plot the results of a couple of FEM
>> simulations...
>>
>> Code is attached which demonstrates the problem. Any help is deeply
>> appreciated!
>>
>> Thanks a million times in advance,
>> best regards from Salzburg, Austria,
>>
>> Daniel
>>
>
> Daniel,
>
> The stacking problem is fairly well known (although not very well
> documented).  However, this is not your bug.
>
> I haven't exactly figure out what is wrong, but it appears that a fifth
> polygon is being drawn or something that is connecting back to the (0, 0)
> point.  If you redefine your polygons a bit, you will see what I mean:
>
> vertsQuad = [ [ (0,0), (0,1), (1,1), (1,0) ],
>           [ (4,1), (2,3), (2,2), (3,1)],
>           [ (0,1), (2,3), (2,2), (1,1)],
>           [ (3,0), (3,1), (4,1), (4,0)]]
>
> As an additional note, your for-loop later in the code is a bit wrong:
>
> zpos = [0, 1, 2, 3, 4]
> for i in zpos :
>     ...
>     zs = [zpos[i]]*len(vertsQuad)
>
> In this case, you are using the values of zpos as both the z-location values
> *and* as an index back to itself.  Try something like this:
>
> zpos = [0, 1, 2, 3, 4]
> for zval in zpos :
>     ...
>     zs = [zval]*len(vertsQuad)
>
> That way, the values in zpos can be any numerical value, in any order, and
> it makes for easier reading.
>
> I will look a little bit further for the cause of your problem, but you can
> at least partly mitigate it by closing your polygon paths (this shouldn't be
> necessary, but go figure...):
>
> vertsQuad = [ [ (0,0), (0,1), (1,1), (1,0), (0,0) ],
>           [ (4,1), (2,3), (2,2), (3,1), (4,1)],
>           [ (0,1), (2,3), (2,2), (1,1), (0,1)],
>           [ (3,0), (3,1), (4,1), (4,0), (3,0)]]
>
> I hope this helps!
> Ben Root
>

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to