2017-03-03 24 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文件中做一些調整。

對不起部分答案。我希望它能讓你走上正軌。

乾杯!