Moved from #83.
Relevant comments:
#83 (comment) (@zeileis)
Layout: In my first attempt to add both faceting and categorical variables #12, I had just added an argument mfrow so that we could set mfrow = TRUE or mfrow = c(1, 4) etc. Maybe this would be feasible for letting the users decide whether they want square layouts or not.
Axes: It would be good to separate out the functions for drawing the panels and drawing the axes now. This might let us add the support for categorical variables from #12 that we had further discussed in #2. My suggestion was that there should be workhorse functions a la plot2_xclass_yclass_plottype(x, y, by, axes = TRUE, ...).
From reading your description above (but not studying the code in detail), I thought that it might maybe help to have accompanying functions axis2_xlass_yclass_plottype(...) that could be inserted into the workflow for drawing the axes?
#83 (comment) (@vincentarelbundock)
Personally, I would avoid putting too much burden on the formula. Faceting does feel like a different functionality which should mostly (exclusively?) be called with its own argument. Also, focusing on the facet argument eventually allow us to do more complex things like multiple variables with a two-sided formula indicating rows and columns.
The mfrow feature seems important and powerful. Is that name too generic? Will people think it does something else, like allow multiple plot2() calls? If it only applies to facet, maybe it should be facet_mfrow. I don't have a strong view...
Moved from #83.
y ~ x | by | facetrow ~ facetcol? Decision: No.y ~ x | by, facet = TRUEcould treatbyas a facet variable and override the default grouping behaivour (distinct fromfacet = "by", which treats them as equivalent). Decision: No.cexbe adjusted to match the smaller facet elements (or, vice versa)? (Facet args (and some extras) #91)Relevant comments:
#83 (comment) (@zeileis)
#83 (comment) (@vincentarelbundock)