我使用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的人可能能够为我提供一个我可以适应的模板......
谢谢大家!
答案 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文件中做一些调整。
对不起部分答复。我希望它能让你走上正轨。
干杯!