I am trying to find a package to construct a dashboard with interactive graphs (including widgets such as sliders) in python (mainly IPython notebook). I know there is plotly but I would like a fully open-source solution without constraints (i.e. having a public repository as with plotly without the subscription fee).

I have looked at IPython Dashboard package but it is not compatible with python 3 (because of MySQL-python).

Has anyone had any luck with any other package?

  • $\begingroup$ plotly is now open source and can be self-hosted. $\endgroup$ – Spacedman May 14 '16 at 15:47

Have a look at IPyWidgets: https://ipywidgets.readthedocs.io/en/latest/

I've used it to create interactive dashboards in IPython/Jupyter. It's very concise and powerful.

You define a function:

def f(x):
return x

And you connect it to a widget using the Interact() function.

interact(f, x=10);

This generates a widget (a slider in this case) automatically and updates your function with new input when you interact with the widget. The type of widget is determined from the default value you specify (i.e. a checkbox for a boolean, a textbox for a string, etc.)


Python has similar tools to Shiny now, which make it easy to create dashboards with different widgets including sliders, plots, and tables. For example, Bowtie let's you do this. It requires more setup than Jupyter widgets but it has more power in my opinion.

There is a decent list of similar tools for python here.


Check out Dash for Python. The basic package is open source, although advanced features such as chart hosting would require an enterprise package, which is paid.

It's a framework that lets you build great quality web based interactive dashboards. It is built on top of plotly, which it uses for it's visualizations. Here is the documentation for a slider

Here are a few more samples of what you can do with dash


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.