7

Is there any way of getting interactive tooltips in a matplotlib plot? For instance, I wanted to get this scatter plot with hovering tooltips (http://mpld3.github.io/examples/scatter_tooltip.html) functionality in my python application, because they are really useful for visualizations. Unfortunately, I do not want to show this in a browser, but integrated in my own python application, is there any way to do this?

1

1 Answer 1

7

Matplotlib can only create static images and animations. If you want something interactive, then the only way you're going to achieve this is by using a module that outputs javascript. I would suggest reading about bokeh.

It is well developed and gaining a lot of traction in the python world as being a good option for creating interactive plots. Here's an example of bokeh's hovertool capability.

Unfortunately, I do not want to show this in a browser, but integrated in my own python application

I'm not sure what your "own python application" is but you're not going to have a fun time making an interactive plot outside of a browser. I would highly suggest going a webapp route using bokeh if interactivity is truly important to you.

Sign up to request clarification or add additional context in comments.

2 Comments

Thank you, I already knew about bokeh, and I know it's also possible to do similar interactive stuff with mpld3 library, I really wanted to do it without using a browser, but okay, thanks!
Yea, unfortunately you need a dynamic environment to support interactions and a webapp is the most popular and easiest way to go here. There are are some great python webapp frameworks (django, flask, etc) that make webdev pretty intuitive and easy. It's very possible that you're already familiar with these.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.