From: Nic E. <ns...@co...> - 2012-08-13 05:04:49
|
Oops, sorry. I realized it was actually Ben Root who suggested I start this discussion. Don't want to put words in anyones mouth. Nic On Sun, Aug 12, 2012 at 11:51 PM, Nic Eggert <ns...@co...> wrote: > Hi all, > > I'd like to bring up a question spurred by PRs #847(mine) and #819 > (recently accepted). These PRs both deal with stacked plots. #819 adds the > stackplot function to axes.py as a new function, which plots different 2-d > datasets stacked atop each other. #847 slightly modifies the functioning of > `hist` in axes.py by adding a new kwarg which allows datasets to be > stacked. Currently this is only possible using the `barstacked` histtype. > #847 makes it also work with the `step` and `stepfilled` histtypes. > > One of the issues that has been raised in the comments of #847 is whether > we want to take this opportunity to come up with a unified way to handle > "stacked-ness". Michael Droettboom suggested I raise this issue on this > list. So far, there are 3 different approaches: > > 1. The state before #819. AFAIK the only way to do any sort of stacking > was to call `hist` with `histtype="barstacked"`. This treats stacked > histograms as a different type of histogram than non-stacked histograms. > One of my motivations for writing #847 was to get stacked step and > stepfilled histograms, which would require adding several new histtypes > (stepstacked and stepfilledstacked). It seems to me that histtype mostly > controls the style of the histogram plotted, and shouldn't have anything to > do with "stacked-ness", so I think this is kind of clunky. > > 2. The approach I take in #847. Add a new kwarg which controls whether or > not multiple datasets are stacked. I think this is the cleanest > implementation, although that's probably obvious because it's how I wrote > my PR. To keep everything consistent in this approach, we should remove the > stackplot function added in #819, and move that functionality to the `plot` > function, adding a `stacked` kwarg there. > > 3. The approach of #819. With this approach, we would add a separate > function to handle stacked versions of different plots. I'd re-write #847 > as a new function called `stackhist`. This approach, IMO, doesn't scale > well if we want to add "stacked-ness" to more plot types in the future. > > Please take a look at this and send comments about these proposals or any > others you might have. I hope the community can come to a consensus which > unifies the handling of stacked-ness. > > Whatever we end up choosing, I think adding a stacked step histogram will > make it much easier to promote the use of mpl in high energy physics, where > we use this style of plot frequently. > > Thanks, > > Nic Eggert > Graduate Fellow > Cornell University > |