mpld3简单的例子来适应

时间:2017-03-03 14:02:04

标签: python matplotlib mpld3

我使用Python很多,但对js一无所知。

我想在左边绘制一个散点图,右边是几条曲线的图。

右边的每条曲线对应左边的一个且只有一个点。

当我“鼠标悬停”一行时,我想要突出显示相应的一点。

这可能吗?

有人能举例说明我能适应吗?

非常感谢!

Raphaël

编辑:

你是对的thaavik

但是我对mpld3一无所知(还)!

所以这是一个使用纯python的例子。

from pylab import *

#3 Scattered points
x=[1,3,7]
y=[2,6,4]

#3 Curves (each one associated with a point)
xx=linspace(0,4*pi,100)
yy1=sin(xx)
yy2=cos(xx)
yy3=linspace(0,1,100)

#Left panel
f=figure()
f.add_subplot(121)
scatter(x,y)

#Right panel
f.add_subplot(122)
plot(xx,yy1)
plot(xx,yy2)
plot(xx,yy3)

show()

看图像? 当我将鼠标移到右侧的曲线上时,我希望左侧的相应点突出显示。

现在我认为问题很明显。对不起,我不能(还)提出任何代码供您纠正,但我想知道如何使用mpld3的人可能能够为我提供一个我可以适应的模板......

谢谢大家!

1 个答案:

答案 0 :(得分:0)

要记住的第一件事是mpld3(几乎)将matplotlib中的任何内容翻译成javascript,因此鼠标悬停突出显示不是开箱即用的。

要从mpld3开始,请将代码段中的show()替换为:

htmlFig = str(mpld3.fig_to_html(f))

将输出保存为.html文件,您可以在浏览器上打开您的绘图。 (如果您愿意,也有一个mpld3.show(),但我的观点是向您展示javascript输出。)

那么,之后你必须搜索并测试mpld3插件,这实际上修改了这个html / js输出以放置d3功能。例如,此处的插件https://mpld3.github.io/examples/random_walk.html会突出显示鼠标悬停的曲线,这与您的需求非常接近。所以,如果你没有找到一个完全符合你想要的插件,你必须在输出html / javascript文件中做一些调整。

对不起部分答复。我希望它能让你走上正轨。

干杯!