plotly.py icon indicating copy to clipboard operation
plotly.py copied to clipboard

add faceting support for all figure factory methods

Open inkychris opened this issue 4 years ago • 6 comments

Closes: https://github.com/plotly/plotly.py/issues/4724

Documentation PR

  • [x] I've seen the doc/README.md file
  • [x] This change runs in the current version of Plotly on PyPI and targets the doc-prod branch OR it targets the master branch
  • [ ] If this PR modifies the first example in a page or adds a new one, it is a px example if at all possible
  • [ ] Every new/modified example has a descriptive title and motivating sentence or paragraph
  • [ ] Every new/modified example is independently runnable
  • [ ] Every new/modified example is optimized for short line count and focuses on the Plotly/visualization-related aspects of the example rather than the computation required to produce the data being visualized
  • [ ] Meaningful/relatable datasets are used for all new examples instead of randomly-generated data where possible
  • [ ] The random seed is set if using randomly-generated data in new/modified examples
  • [ ] New/modified remote datasets are loaded from https://plotly.github.io/datasets and added to https://github.com/plotly/datasets
  • [ ] Large computations are avoided in the new/modified examples in favour of loading remote datasets that represent the output of such computations
  • [ ] Imports are plotly.graph_objects as go / plotly.express as px / plotly.io as pio
  • [ ] Data frames are always called df
  • [ ] fig = <something> call is high up in each new/modified example (either px.<something> or make_subplots or go.Figure)
  • [ ] Liberal use is made of fig.add_* and fig.update_* rather than go.Figure(data=..., layout=...) in every new/modified example
  • [ ] Specific adders and updaters like fig.add_shape and fig.update_xaxes are used instead of big fig.update_layout calls in every new/modified example
  • [ ] fig.show() is at the end of each new/modified example
  • [ ] plotly.plot() and plotly.iplot() are not used in any new/modified example
  • [ ] Hex codes for colors are not used in any new/modified example in favour of these nice ones

Code PR

  • [x] I have read through the contributing notes and understand the structure of the package. In particular, if my PR modifies code of plotly.graph_objects, my modifications concern the codegen files and not generated files.
  • [ ] I have added tests (if submitting a new feature or correcting a bug) or modified existing tests.
  • [ ] For a new feature, I have added documentation examples in an existing or new tutorial notebook (please see the doc checklist as well).
  • [x] I have added a CHANGELOG entry if fixing/changing/adding anything substantial.
  • [ ] For a new feature or a change in behaviour, I have updat
  • [ ] ed the relevant docstrings in the code to describe the feature or behaviour (please see the doc checklist as well).

inkychris avatar Apr 02 '21 14:04 inkychris

@nicolaskruchten, this attempts to resolve #2646. I feel like there sould be more to do than this, but the default spacing seems to be reasonable...

inkychris avatar Apr 02 '21 15:04 inkychris

Thanks! I'll take a look in a couple of weeks as we prepare for the next release of Plotly.py :) For spacing, what sizes of figures did you spot-check/how many rows/how many columns?

nicolaskruchten avatar Apr 06 '21 12:04 nicolaskruchten

I only checked 2x2. I'll can go back through with 3x3 perhaps, and also provide the scripts I used to check them as that'll probably make validation a little easier for you.

inkychris avatar Apr 06 '21 15:04 inkychris

I've realised that spacing depends a lot more on window size than I had originally appreciated 🙈. Also, the row, column, and subplot titles seem to overlap, but I'm not sure if this is a Python issue or a JS issue? I haven't found a way to modify it.

image

inkychris avatar Apr 07 '21 00:04 inkychris

Yeah, this kind of thing is what we need to come up with a good heuristic for...

nicolaskruchten avatar Apr 07 '21 00:04 nicolaskruchten

This PR adds facet support to some chart types that currently don't support faceting, so with re-work it could be merged.

gvwilson avatar Aug 23 '24 14:08 gvwilson