mplot3d: set_offsets()/set_array() don't work right for 3d collections · Issue #784 · matplotlib/matplotlib · GitHub
Skip to content

mplot3d: set_offsets()/set_array() don't work right for 3d collections #784

Description

@zpincus

It's easy to make animated/interactive 2d plots with PatchCollections, where one can dynamically alter the positions, colors (if using a ScalarMappable colormap), and number of active patches using the set_offsets() and set_array() commands.

This doesn't work quite right for, e.g., Patch3DCollection objects. One can work around set_offsets() by setting the _offsets3d attribute directly, and that seems to work fine, but perhaps this could be bundled up into a set_offsets() method?

It's trickier for changing the colormap values with set_array(), because there's no clear hook for how to invoke the zalpha() function appropriately. Worse, at times I'm able to re-create the "patches lose their color and turn gray" bug when directly setting these values -- but I can't exactly figure out where or when. I'm working on a test case for this...

I can try to work up a patch for this, but if @WeatherGod or anyone else could give a hint or two as to the best approach, that would be helpful! I'm thinking that set_3d_properties() and do_3d_projection() have basically the logic required, which could be refactored into set_offsets() and set_array() calls that would do the right things...

PS. Last issue for today, I promise -- sorry for the spam!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions