xticks xlabel tick legends font example matplotlib

xlabel - Información sobre herramientas de punto y línea en matplotlib?



plot title font size matplotlib (3)

Tengo un gráfico con algunos segmentos de línea ( LineCollection ) y algunos puntos. Estas líneas y puntos tienen algunos valores asociados que no están graficados. Me gustaría poder agregar un consejo sobre el mouse u otro método para encontrar fácilmente el valor asociado para los puntos y la línea. ¿Es esto posible para segmentos de puntos o líneas?


Para los puntos, he encontrado una manera, pero tienes que usar el backend de WX

"""Example of how to use wx tooltips on a matplotlib figure window. Adapted from http://osdir.com/ml/python.matplotlib.devel/2006-09/msg00048.html""" import matplotlib as mpl mpl.use(''WXAgg'') mpl.interactive(False) import pylab as pl from pylab import get_current_fig_manager as gcfm import wx import numpy as np import random class wxToolTipExample(object): def __init__(self): self.figure = pl.figure() self.axis = self.figure.add_subplot(111) # create a long tooltip with newline to get around wx bug (in v2.6.3.3) # where newlines aren''t recognized on subsequent self.tooltip.SetTip() calls self.tooltip = wx.ToolTip(tip=''tip with a long %s line and a newline/n'' % ('' ''*100)) gcfm().canvas.SetToolTip(self.tooltip) self.tooltip.Enable(False) self.tooltip.SetDelay(0) self.figure.canvas.mpl_connect(''motion_notify_event'', self._onMotion) self.dataX = np.arange(0, 100) self.dataY = [random.random()*100.0 for x in xrange(len(self.dataX))] self.axis.plot(self.dataX, self.dataY, linestyle=''-'', marker=''o'', markersize=10, label=''myplot'') def _onMotion(self, event): collisionFound = False if event.xdata != None and event.ydata != None: # mouse is inside the axes for i in xrange(len(self.dataX)): radius = 1 if abs(event.xdata - self.dataX[i]) < radius and abs(event.ydata - self.dataY[i]) < radius: top = tip=''x=%f/ny=%f'' % (event.xdata, event.ydata) self.tooltip.SetTip(tip) self.tooltip.Enable(True) collisionFound = True break if not collisionFound: self.tooltip.Enable(False) example = wxToolTipExample() pl.show()


Es un hilo viejo, pero en caso de que alguien esté buscando cómo agregar información sobre herramientas a las líneas, esto funciona:

import matplotlib.pyplot as plt import numpy as np import mpld3 f, ax = plt.subplots() x1 = np.array([0,100], int) x2 = np.array([10,110], int) y = np.array([0,100], int) line = ax.plot(x1, y) mpld3.plugins.connect(f, mpld3.plugins.LineLabelTooltip(line[0], label=''label 1'')) line = ax.plot(x2, y) mpld3.plugins.connect(f, mpld3.plugins.LineLabelTooltip(line[0], label=''label 2'')) mpld3.show()


Tal vez una variación de esta receta haría lo que quiere para los puntos? Al menos no está restringido a wx back-end.