2016-05-12 7 views
1

私の研究プロジェクトには一連のデータがあり、各データポイントには多くの関連情報が含まれており、すべてを数字で表示することはできません。これらのデータを視覚化するには、2つの重要なパラメータを使用してデータポイントをプロットし、マウスカーソルが1つのデータポイント上を移動すると、このデータポイントに関連するすべての情報が表示されます。私はこれを実装する方法があるかどうか疑問に思っていますか?Python:データポイントの対応する情報をマウスと対話的に取得

ありがとうございます!

答えて

1

hereのようなものを提供するmatplotlibの例があります。 @rootは(ポイントの上にマウスクリックによる)コンソールの出力との基本的なインターフェイスを提供し、ここでanswerを与えた:

from matplotlib.pyplot import figure, show 
import numpy as npy 
from numpy.random import rand 

if 1: # picking on a scatter plot (matplotlib.collections.RegularPolyCollection) 

    x, y, c, s = rand(4, 100) 
    def onpick3(event): 
     ind = event.ind 
     print 'onpick3 scatter:', ind, npy.take(x, ind), npy.take(y, ind) 

    fig = figure() 
    ax1 = fig.add_subplot(111) 
    col = ax1.scatter(x, y, 100*s, c, picker=True) 
    #fig.savefig('pscoll.eps') 
    fig.canvas.mpl_connect('pick_event', onpick3) 

show() 

しかし、私はmpldatacursorをお勧めします。

mpldatacursor example

:この結果と

import matplotlib.pyplot as plt 
from mpldatacursor import datacursor 
import random 

fig, ax = plt.subplots() 
ax.set_title('Click on a dot to display its label') 

# Plot a number of random dots 
for i in range(1, 1000): 
    ax.scatter([random.random()], [random.random()], label='$ID: {}$'.format(i)) 

# Use a DataCursor to interactively display the label for a selected line... 
datacursor(formatter='{label}'.format) 

plt.show() 

:@moooeeeepはそれの例は、hereを使用していました

関連する問題