Alternatives to matplotlib for pandas dataframes
By: Simon Sotak
Tags: Pandas, Jupyter, Data Science, No Code, Matplotlib

I love no-code tools like Metabase or Tableau where you can build great-looking charts in a matter of seconds using an inuitive UI. They just work really well for 95% of my exploratory use cases.

Compare that to the Python notebooks world, where the typical approach is to use matplotlib and googling its syntax every time you want to plot something. There are definitely some great alternatives like plotly, seaborn or bokeh, but they all have syntax that's just not easy to memorize. So the question I'll answer in this article is:

What are the best tools for no-code pandas visualization tools and how do they compare?

1. D-Tale

D-Tale is a powerful open-source (LGPL-2.1) tool that runs a webapp that you can display inside your jupyter cell’s output. It provides a lot of functionality, including a UI for creating charts.

D-Tale screenshot

Unfortunately D-Tale is not a first-class notebook experience. You have to leave your notebook to interact with D-Tale, which runs in a separate window. That way, you’re basically forced to switch contexts between D-Tale and the rest of your notebook, and it’s also difficult to get the plot back inside the notebook to create a good data story.

Additionally, for a quick exploratory use-case, the UI is perhaps too heavy. I couldn’t find an option to bin the X-axis variable to create a nice histogram.

To use it, run pip install dtale and then:

2. bamboolib

bamboolib is a free python package (with paid options) for pandas data browsing, manipulation and visualization. It uses ipywidgets for its functionality so it works great without having to leave the notebook.

bamboolib screenshot

Its plotting UI is simple and intuitive. It uses plotly behind the scenes, and can easily show me the code it generated so that I can continue refining it if I want to.

Unfortunately, if I shut down the kernel and then start it back up, the state of my visualization is lost. ipywidgets should be able to restore their state, so maybe I’m doing something wrong, but I’m not sure how to fix this.

3. Deepnote

Note: The author of this article is affiliated with Deepnote

Deepnote is a data science notebook platform that can run Jupyter notebooks. There’s a new feature in Deepnote — chart cells.

Deepnote screenshot

It has a simple and intuitive UI with more complex customization options — like binning — hidden inside the three-dot menus.

The most important feature is that the visualization and its UI are persistent, meaning that it will remember the settings and the chart even after your restart the kernel or hardware or after closing the page. It even supports real-time collaboration, just like the rest of Deepnote — you’ll be able to see your colleague editing the chart as they’re doing it.

Deepnote chart cells use altair and Vega Lite behind the scenes, so the charts integrate nicely with the rest of the ecosystem. An upcoming feature is an option to export the visualization code for further refinement.

A downside is that the customizability of these charts is currently quite limited.

Check out this video for some typical use-cases of chart cells:

There’s more

There are more tools that didn’t fit into this article but deserve a mention: