2017-03-03 96 views
1

我使用Python相当多,但不知道任何关于js。mpld3简单的例子,以适应

我想在左侧绘制散点图,在右侧绘制几条曲线图。

右侧的每条曲线对应于左侧的一个点,并且仅对应一个点。

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

这可能吗?

任何人都可以给我一个我可以适应的例子吗?

非常感谢!

拉斐尔

编辑:

你是正确的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

请发布您想要帮助的特定代码片段。你会得到一个更好的回应:“我试过这个,它不起作用,为什么?”比“给我模糊的X代码”。 – thaavik

回答

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文件中做一些调整。

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

干杯!