Would someone have the “big picture” in mind of the different client-side in-browser rendering solutions for charts / plots ?
I have seen:
- bokeh (interactive with BokehJS)
- matplotlib (rendered into a static image displayed in the browser I guess, is that correct?)
- plotly (interactive with plotlyJS)
- altair/vega (very often the examples I found were static, like images, and not zoomable/movable, but here is an interactive plot : what is the Javascript solution under the hood in action here? I see altair is 100% Python and no Javascript)
If someone has more experience about the different in-browser plot renderers, it would be super interesting!
Note:
-
after further research, Altair is indeed 100% Python, but Vega seems to be the part which provides in-browser interactivity: GitHub - vega/vega: A visualization grammar., as an example this is interactive:
import altair as alt from vega_datasets import data cars = data.cars() chart = alt.Chart(cars).mark_point().encode(x='Horsepower', y='Miles_per_Gallon', color='Origin').interactive() chart.save('chart.html')
-
Side-question: does Streamlit also provide its own JS client-side chart rendering code, or does it only re-use existing solutions (bokeh, altair, etc.)?