ProjectPythia / pythia-foundations

Jupyterbook source for the Foundations collection
http://foundations.projectpythia.org
Apache License 2.0
61 stars 43 forks source link

Add interactive and 3D plotting to Matplotlib content #239

Open jukent opened 2 years ago

jukent commented 2 years ago

It is listed as something we want to cover, with the rest of the Matplotlib content coming together - maybe it is time to tackle this?

brian-rose commented 2 years ago

There's an inherent challenge in coming up with good tutorial material for interactive plotting in a static book-like medium, but it would be a good addition. 3D plotting would be great too.

Would these be suitable tasks for our SIParCS intern?

ktyle commented 2 years ago

@jukent by "interactive" do you mean leveraging a plotting tool like Plotly/Dash and/or Holoviews/hvplot?

jukent commented 2 years ago

Yes I believe so. I'm not sure who originally wrote "interactive and 3D plotting" in the Matplotlib coming soon, but maybe they can chime in more with their ideas.

I think this could be great for a SIParCS intern.

clyne commented 2 years ago

Hi @jukent, FYI the GeoCAT team recently published their first interactive plotting example using bokeh:

https://geocat-examples.readthedocs.io/en/latest/gallery-notebooks/Datashader/MPAS_Datashader_Trimesh.html

It's a fairly complicated example that shows how to plot high resolution unstructured grids, but my understanding is that GeoCAT will expand this gallery with some more basic examples when time permits. @erogluorhan can possibly say more about their plans.

Given the overlapping educational goals with Pythia and GeoCAT-examples, and the nascent state of GeoCAT's interactive plotting examples, it would worth having a conversation with @erogluorhan et al about how we might leverage efforts. From a user perspective it would be ideal if user's could seamlessly make use of interactive plotting examples regardless of whether they are hosted on Pythia or GeoCAT-examples. Maybe nothing will come of this, but its worth a conversation :-)

erogluorhan commented 2 years ago

GeoCAT is planning to put together more interactive visualization examples in the near future through two main scopes:

  1. Examples for structured grids under GeoCAT-examples
    • This effort is led by @anissa111 and @michaelavs and there will be a SIParCS 2022 internship (Project 1 - Expanding GeoCAT’s Visualization Capabilities) of them, part of which might be work on this
  2. Project Raijin's unstructured grid visualization examples
    • This is part of Project Raijin's first year goals and we also have a SIParCS 2022 internship (Project 8 - Python data analysis & visualization and Jupyter notebook development for unstructured grids data) for this.

"Interactivity" may have different types and levels; I'd recommend having a look at this GeoCAT-viz issue to see different perspectives. I don't have much information about what this original issue was meant with "interactive matplotlib" visualization (maybe pan, zoom, etc, or animations), GeoCAT used and will likely use bokeh for pan/zoom kind of interavctivity, as John mentioned.

We are happy to discuss any integration between Pythia content and GeoCAT as well as putting contribution.

clyne commented 1 year ago

This might be a good hackathon 2023 project