|
From: Jody K. <jk...@uv...> - 2013-09-24 22:47:01
|
Hi All, On Dec 11, 2012, at 16:59 PM, Damon McDougall <dam...@gm...> wrote: > On Tue, Dec 11, 2012 at 1:16 PM, Benjamin Root <ben...@ou...> wrote: >> >> >> On Tue, Dec 11, 2012 at 2:08 PM, Chloe Lewis <ch...@be...> wrote: >>> >>> Would it be workable for the default to be proportional to the size of the >>> array passed in? (suggested only because I do that myself, when deciding how >>> coarse an investigative plot I can get away with.) >>> >>> &C >>> >> >> That is pretty much what the PR I was referring to does: >> >> https://github.com/matplotlib/matplotlib/pull/1040 >> >> It makes it so that the behavior of both plot_surface and plot_wireframe is >> the same in this respect. So, by default, the rstride and cstride would be >> 1% of the size of your data array. This would make the default for the >> recent example be 1, therefore showing every point. I wonder if a >> logarithmic default would make sense to better handle large data arrays? >> >> Thoughts? >> Ben Root > > I hope nobody minds if I chime in here. > > I'm in favour of making the defaults a little more intelligent that > what is implemented at present, i.e, a constant stride for any > surface. Any non-trivial scaling law to determine what stride to use > will result in more expected behaviour than what our users are > currently seeing. > > Could we do better? Could we have plot_surface try and estimate the > stride based on the 'roughness' of the surface to be plotted? This > method would grind to a halt for very rough surfaces, so we could > default to a scaling law in these cases. > OK, way late here, but 1) I wasted an hour today before I discovered what "rstride" and "cstride" were. Reading the documentation, I still don't actually know what they are, except that if I want to see all my data I need to set them to 1. "Array row stride (step size)", is pretty enigmatic! "stride" is a term I've never heard before except is reference to walking. I see it is used in computer science, but to refer to the byte-wise distance between array elements, so not very analogous. Can I suggest the docs be improved to say exactly what these do (I assume either average over cstride columns and rstride rows, or subsample on that frequency, not clear which)? Can I also suggest the default is 1? Its pretty frustrating for large a chunk of your data to not show up for no logical reason. If my data set is too large, I am smart enough to subsample it myself before I plot it. 2) Can I suggest this example be added to the tutorial? http://stackoverflow.com/questions/6539944/color-matplotlib-plot-surface-command-with-surface-gradient None of the other examples explain how to colour your surface with data, which is what I wanted. 3) I think plot_surface should accept a fourth (optional) argument C for colouring the faces: plot_surface(X,Y,Z,C). I do this a lot if I want to make a 3-D plot, and normalizing C, clipping it, and indexing a colormap seem clunky, when the routine could do it for me. Thanks, Jody -- Jody Klymak http://web.uvic.ca/~jklymak/ |