Plotting Architecture Decision Record (ADR)

Plotting Architecture Decision Record (ADR)#

Status: DRAFT

12/1/24

Context#

Shared this with students:

every time I’ve tried to fix something in JupyterHub recently, it seems to get worse, not better 😒 Remember when I said “you will want to throw your computer out a window at one or many points in the class”? That’s me with JupyterHub, Plotly, and nbconvert (the PDF exporting engine) this past week. Here’s the running list of walls we’ve run into.

A lot of the complication revolves around Plotly charts being interactive by default.

This is tied up with how assignments are submitted, as support for interactive plots (in notebooks/HTML) in those tools varies.

Options#

Non-exhaustive list.

Option

Pros

Cons

Plotly (interactive)

No change required to course materials; interactive is cool

Various problems

Plotly (static)

Minimal change required to course materials; safer for PDF export; easy to switch between interactive and non

Students need to remember to switch; static isn’t as cool as interactive

pandas native

Less code; fewer packages; more native

Requires changes throughout the materials; learning curve for me; static isn’t as cool as interactive

seaborn

More powerful charts take less code than pandas

Learning curve for me; static isn’t as cool as interactive

pandas can use Plotly as the plotting backend, which may be a way to split the difference between the options.

Decision#

TODO

Consequences#

TODO