5 ms·
If we only look at the simplest example then I would agree that there is not much difference. But more complicated plots will require you to write code in a mor
by lcvriend 3y ago
If we only look at the simplest example then I would agree that there is not much difference. But more complicated plots will require you to write code in a more verbose and imperative fashion when using matplotlib.
Take a faceted plot like this scatter matrix [1] and try to plot it in matplotlib. You would need to set up the grid using subplots, then define the combinations you want and finally write logic to fill each subplot. The vega/altair code is much more declarative. You just tell it what needs to be in the rows/columns and vega/altair takes care of the rest.
[1]: https://altair-viz.github.io/gallery/scatter_matrix.html https://altair-viz.github.io/gallery/scatter_matrix.html
- theodpHN 3y agoMirror, mirror on the wall, what’s the most declarative dataviz programming language of all? :-) *** SAS SCATTER MATRIX EXAMPLE *** proc sgscatter data=sashelp.cars; matrix Horsepower Acceleration Miles_per_Gallon / group=Origin; *** ALTAIR SCATTER MARIX EXAMPLE *** import altair as alt from vega_datasets import data source = data.cars() alt.Chart(source).mark_circle().encode( alt.X(alt.repeat("column"), type='quantitative'), alt.Y(alt.repeat("row"), type='quantitative'), color='Origin:N' ).properties( width=150, height=150 ).repeat( row=['Horsepower', 'Acceleration', 'Miles_per_Gallon'], column=['Miles_per_Gallon', 'Acceleration', 'Horsepower'] ).interactive()
- lcvriend 3y agoWell, there also is for example `pandas.plotting.scatter_matrix()` [1] which is built on top of matplotlib. I suppose the question is how does SAS or any other alternative compare to vega/altair when the desired output is less standard. [1]: http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.plotting.scatter_matrix.html#pandas.plotting.scatter_matrix http://pandas.pydata.org/pandas-docs/stable/reference/api/pa...
- joelostblom 3y agoIf you are interested in similar shortcuts for repeated charts in Altair, I'm experimenting a bit with such a syntax in the package altair-ally https://joelostblom.github.io/altair_ally/examples.html https://joelostblom.github.io/altair_ally/examples.html. Feel free to try it out and leave feedback! (disclaimer: I'm a co-maintainer of Altair)