2016-12-28 65 views
2

我想知道是否有方法来显示相应的标记(或行)值,当我们将鼠标光标放在图的这些元素上而不点击它们时,以类似的方式绘制它(一些示例使用散点图here )。Python 2.7:我可以让Matplotlib的显示值像Plotly一样吗?

我自己取得的成就是一些基本的交互式绘图(点击我的绘图元素后添加标记到一行)。我看到了这个非常有用的软件包(mpldatacursor),但仍然不是我想要的。

正如你在这个例子中看到的,我可以选择一条线的坐标并显示它们,但只有当我点击这些点时才会发生。而且我会喜欢他们不被点击而被展示,就像情节化的例子。

这个例子也从pypi.python.org/pypi/mpldatacursor

import matplotlib.pyplot as plt 
import numpy as np 
from mpldatacursor import datacursor 

data = np.outer(range(10), range(1, 5)) 

fig, ax = plt.subplots() 
lines = ax.plot(data) 
ax.set_title('Click somewhere on a line') 

datacursor(lines) 

plt.show() 

enter image description here

取我很高兴听到你可能有任何建议,保重!

+2

这些东西需要一定数量的前端(JavaScript或其他)的支持。 Matplotlib主要是关于高质量的静态图(用于论文等)。您是否尝试过使用另一个类似Bokeh的库来执行此操作?它可以做你要求使用hovertool http://bokeh.pydata.org/en/latest/docs/user_guide/tools.html –

+0

@NoufalIbrahim我没有。我明白你对matplotlib的限制有什么看法,但我想知道是否有其他人尝试过类似的东西。 感谢您提供Bokeh,它看起来很强大。作为一个额外的问题,你有没有尝试在GUI中嵌入散景图?我发现的大多数例子都是Matplotlib。你有没有尝试过这样的事情? –

+0

一般而言,这些交互式图形是一个HTML(使用JavaScript)(如Noufal Ibrahim所说)使其互动。将html集成到GUI中应该不难。 – Lucas

回答

1

不,matplotlib的目的不是制作交互式图形。我不是说这是不可能的,但有一些图书馆。

bokeh

可能有用的从你的页面:

背景虚化是一个Python交互式可视化库,针对现代浏览器呈现。

相关问题