7 ms·
I work as a data scientist (like many others in this thread) and Altair is a great tool for exploring the data. I really like the grammar of graphics approach a
by k1next 3y ago
I work as a data scientist (like many others in this thread) and Altair is a great tool for exploring the data. I really like the grammar of graphics approach and the ability to do things like cross-filter and the general ease of enabling interactivity are great! Amazing work by everyone on the Altair/Vega team.
There are some drawbacks though that have been holding some of my colleagues back from switching from e.g. Seaborn to Altair:
- No zoom by selecting the x- or y-range. Almost all other libraries implement box-zoom, Altair does not have this. This is probably the biggest complaint I have heard so far.
- Annotating data inside the plot is difficult. I don't mean `mark_text`, I mean placing an annotation that you would do in Matplotlib via `ax.text(...)`.
- Along side that: No TeX support.
- It does become slow once there is a large number of points in the chart (and you don't want to aggregate).
- Missing mapping features. I know you can have maps in the background of your plot, but I'm talking OSM like mapping.
- Working with layered + faceted charts takes some time to get used to.
- It used to be that if you had a dataframe with 100 columns and you were only plotting two of them, still all 100 columns would be saved to html. I think this is addressed in VegaFusion?
Still, I want to just emphasize how much I love Altair. To understand relations in your data, it's amazing to just assign color to a column, shape to another column and so on. Really neat! With a background in mathematics, it was also helping me to think about the whole tidy approach to dataframes, so that was an added benefit!
- jmmease 3y ago(Disclaimer: I'm a Vega-Altair maintainer) Thanks for the feedback and for the kind words! All of these drawbacks are fair, just a couple of comments. There is an experimental package called altair_tiles that makes is possible to add OSM-style maptile backgrounds to Altair charts. See https://github.com/altair-viz/altair_tiles https://github.com/altair-viz/altair_tiles. This is mostly for static charts at the moment, as it doesn't integrate well with pan/zoom yet. As you mentioned, VegaFusion is able to remove unused columns in most cases. (And if it doesn't for a particular case, please open an issue!).
- k1next 3y agoThanks for the feedback! Looking forward to `altair_tiles`. And again, great work, very much appreciate it! Maybe while you're here: Is there any desire to implement box-zoom (or x-range zoom) at any point in the future?
- jmmease 3y agoBox zoom would need to be added to Vega-Lite first, and there has been some discussion around it in https://github.com/vega/vega-lite/issues/4742 https://github.com/vega/vega-lite/issues/4742. Bottom line is that there's nothing blocking its implementation, someone just needs to do the work in Vega-Lite. And once released in Vega-Lite, Altair would pick it up automatically with how we generate the Altair API from the Vega-Lite schema.