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:
-
The state before #819. AFAIK the only way to do any sort of stacking was to call
hist
withhisttype="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. -
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 astacked
kwarg there. -
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