For consideration (as discussed on Slack), here is a proposed list of requirements to try to find the best short-term (i.e. until stabilization of Makie/Plots/etc.) solution for teaching plotting for new users, students, and exploratory tutorials. Implicit in this is the assumption that: (1) the long-term solution will not be stable before a v1.0 launch; (2) there is a benefit in trying to coordinate those teaching new users towards the same first plotting library; (3). this is a starting point for building familiarity with Julia in a pain-free way (potentially as a student or evaluator) and does not need to be the one (of many) they stick with down the road.
Suggested Minimal Requirements
The following is, what I think are the bare minimum requirements
- Completely idiot-proof setup on Windows/OSX/Linux desktops with minimal installation steps required and no flakiness
- Plots do no disappear when closing and reopening Jupyter notebooks
- Works and supported on juliabox
Print Previewand then print to PDF from Jupyter (for submitting assignments or printing results)
- Plotting works in the REPL and in Juno
- Can do multiple plots in the REPL and Juno. Acceptable if it has to open up new windows for now instead of using the plot pane
- Can copy/paste the same code between Jupyter, the REPL, and Juno and expect it to work. e.g. calling
display(...)in one and not in the other is extremely confusing for new users
- Basic LaTeX latex/title support on REPL, Juno, and Jupyter (again, with a minimal setup…)
- Some way to download an image (note: right-click,
Download as pngfulfills the requirement)
- Starting point for tutorials and user documentation exists
Nice to Have Requirements
The following are nice but not deal-killers
- Fast to first plot is nice, but the bugginess issues dominate until that point.
- Large numbers of existing code and tutorials can be adapted with little change (e.g. backend change from
plotly()could be trained easily)
- Basic ability to programmatically save an image without a fragile setup. If can Download manually, not required immediately.
- Works in Jupyterlab (including not having disappearing graphs)
- VSCode support, including plotting
- Nice if multiple plots show in Juno plot pane(