2017-03-03 12 views
1

私はPythonをかなり使っていますが、jsについては何も知りません。mpld3の簡単な例

私は、左側に散布図を、右側にいくつかの曲線を描いてみたいと思います。

右側の各曲線は、左側の1つの点に対応します。

行を「マウスオーバー」すると、対応するポイントが強調表示されます。

これは可能ですか?

誰でも私が適応できることの例を教えてもらえますか?

ありがとうございます!

ラファエル

EDIT:

私はmpld3(まだ)については何も知らないしかし、あなたが右thaavik

です!

純粋な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に変換するので、マウスオーバーの強調表示は箱から出てくるものではありません。

htmlFig = str(mpld3.fig_to_html(f)) 

の.htmlファイルに出力を保存して、ブラウザ上のあなたのプロットを開くことができますして、スニペットにshow()に置き換え、mpld3そもそも

。 (mpld3.show()もありますが、私の要点はJavaScriptの出力を表示しています)。

その後、mpld3プラグインを検索してテストする必要があります。このプラグインは、基本的にこのhtml/js出力を変更してd3機能を追加します。たとえば、このプラグインはhttps://mpld3.github.io/examples/random_walk.htmlで、マウスオーバーで曲線を強調表示します。これは必要なものに近いです。したがって、あなたが望むものを正確に実行するプラグインが見つからない場合は、出力html/javascriptファイルでいくつかの微調整を行う必要があります。

ご迷惑をおかけして申し訳ありません。私はそれがあなたを正しい軌道に乗せることを願っています。

乾杯!