2016-05-12 3 views
1

У меня есть набор данных в моем исследовательском проекте, и каждая точка данных содержит много связанной информации, и их невозможно показать на рисунке. То, что я хотел бы сделать, чтобы визуализировать эти данные, заключается в построении точек данных с использованием двух ключевых параметров, а когда курсор мыши наводится на одну точку данных, он отображает всю информацию, связанную с этой точкой данных. Мне интересно, есть ли способы реализовать это?Python: получить интерактивную информацию о точках данных с помощью мыши

Спасибо!

ответ

1

У вас есть пример matplotlib, который предоставляет что-то вроде того, что вы задаете here. @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. @moooeeeep дал пример его использование here:

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() 

С этим результатом:

mpldatacursor example

Смежные вопросы