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!
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()andset_array()commands.This doesn't work quite right for, e.g., Patch3DCollection objects. One can work around
set_offsets()by setting the_offsets3dattribute directly, and that seems to work fine, but perhaps this could be bundled up into aset_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()anddo_3d_projection()have basically the logic required, which could be refactored intoset_offsets()andset_array()calls that would do the right things...PS. Last issue for today, I promise -- sorry for the spam!