Cómo mostrar datos en un gráfico matplot

Estoy tratando de hacer una ttwig interactiva en el jupyter notebook pero no sé exactamente cómo implementarlo. Al tener un dataframe, ejecuto una regresión simple que luego se grafica para ver la distribución. Me gustaría poder desplazar uno de los puntos y obtener datos asociados con este punto. ¿Cómo puedo hacer eso? Ahora mismo solo puedo producir un gráfico estático introduzca la descripción de la imagen aquí

 import pandas as pd from sklearn import linear_model %matplotlib inline import matplotlib import matplotlib.pyplot as plt net = pd.read_csv("network_ver_64.csv") net = net[net.AWDT12 > 0] x = net.LOAD_DAILY.values y = net.AWDT12.values x_lenght = int(x.shape[0]) y_lenght = int(y.shape[0]) x = x.reshape(x_lenght, 1) y = y.reshape(y_lenght,1) regr = linear_model.LinearRegression() regr.fit(x, y) plt.scatter(x, y, color='black') plt.plot(x, regr.predict(x), color='blue', linewidth=1) plt.xticks(()) plt.yticks(()) plt.show() 

En primer lugar, está claro que el backend %matplotlib inline no permite la interacción, ya que está en línea (en el sentido de que los gráficos son imágenes).

Sin embargo, incluso en el cuaderno puede obtener interacción utilizando el backend de %matplotlib notebook . Ya se ha implementado un desplazamiento básico: mover el mouse en el canvas muestra la posición actual del mouse en las coordenadas de datos en la esquina inferior derecha.

introduzca la descripción de la imagen aquí

Por supuesto, puede obtener una funcionalidad más sofisticada escribiendo algún código personalizado. Por ejemplo, podemos modificar el ejemplo de selección un poco de la siguiente manera:

 import matplotlib.pyplot as plt %matplotlib notebook import numpy as np fig = plt.figure() ax = fig.add_subplot(111) ax.set_title('click on points') line, = ax.plot(np.random.rand(100), 'o', picker=5) # 5 points tolerance text = ax.text(0,0,"") def onpick(event): thisline = event.artist xdata = thisline.get_xdata() ydata = thisline.get_ydata() ind = event.ind text.set_position((xdata[ind], ydata[ind])) text.set_text(zip(xdata[ind], ydata[ind])) fig.canvas.mpl_connect('pick_event', onpick) plt.show() 

Esto ahora muestra las coordenadas de datos del punto en el que el mouse ha hecho clic.

introduzca la descripción de la imagen aquí

Usted es bastante libre de adaptar esto a cualquier caso que desee y hacerlo más bonito con las herramientas estándar de matplotlib.