En R, hay una función locator
que es como ginput
de Matlab donde puede hacer clic en la figura con un mouse y seleccionar cualquier coordenada x, y. Además, hay una función llamada identify(x,y)
donde si le das un conjunto de puntos x, y que has trazado y luego haces clic en la figura, devolverá el índice del punto x, y que está más cerca (dentro de un tolerancia) a la ubicación que ha seleccionado (o múltiples índices, si se seleccionan múltiples puntos). ¿Hay tal funcionalidad en Matplotlib?matplotlib: selecciona interactivamente puntos o ubicaciones?
14
A
Respuesta
12
Es posible que desee utilizar un pick event: Tolerancia
fig = figure()
ax1 = fig.add_subplot(111)
ax1.set_title('custom picker for line data')
line, = ax1.plot(rand(100), rand(100), 'o', picker=line_picker)
fig.canvas.mpl_connect('pick_event', onpick2)
establecido por el parámetro selector de allí:
line, = ax1.plot(rand(100), 'o', picker=5) # 5 points tolerance
+0
Sí, esto es genial, ¡gracias! – hatmatrix
5
from __future__ import print_function
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
from matplotlib.patches import Rectangle
from matplotlib.text import Text
from matplotlib.image import AxesImage
import numpy as np
from numpy.random import rand
if 1:
fig, ax = plt.subplots()
ax.set_title('click on points', picker=True)
ax.set_ylabel('ylabel', picker=True, bbox=dict(facecolor='red'))
line, = ax.plot(rand(100), 'o', picker=5)
def onpick1(event):
if isinstance(event.artist, Line2D):
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
print 'X='+str(np.take(xdata, ind)[0]) # Print X point
print 'Y='+str(np.take(ydata, ind)[0]) # Print Y point
fig.canvas.mpl_connect('pick_event', onpick1)
+2
Si importa la función de impresión del futuro, debe agregar los corchetes: print ('X =' + str (np.take (xdata, ind) [0])) –
Cuestiones relacionadas
- 1. matplotlib de Python restringir a ubicaciones de tilde enteras
- 2. Matplotlib: puntos de etiqueta en mouseover
- 3. Gráfico de puntos y figuras con matplotlib
- 4. Encontrar los puntos atípicos de matplotlib: boxplot
- 5. Talla individual por puntos en Matplotlib?
- 6. matplotlib: línea extendida más de 2 puntos de control
- 7. JavaFX FileChooser selecciona archivos y/o directorios?
- 8. Incorporación matplotlib en C++
- 9. Configuración de puntos sin datos en blanco con Matplotlib imshow
- 10. Sombreando un área entre dos puntos en un diagrama matplotlib
- 11. matplotlib: Establecer marcadores para puntos individuales en una línea
- 12. Interactivamente usando Mutexes (et al) en Powershell
- 13. Eliminando Hunk Interactivamente con git add --patch
- 14. Parcelas polares medias o marginales en Matplotlib?
- 15. (python) matplotlib pyplot show() .. bloqueando o no?
- 16. cómo usar pyplot.arrow o parches.Arrow in matplotlib?
- 17. XMLStarlet no selecciona nada
- 18. 'sudo gem install' o 'gem install' y ubicaciones de gemas
- 19. Buscando ubicaciones API (C#)
- 20. Bazar (bzr) ubicaciones predefinidas
- 21. ¿Cómo desentierro interactivamente un trozo en particular en git?
- 22. Cómo importar múltiples ubicaciones a PYTHONPATH (bash)
- 23. Distancia entre dos ubicaciones: Google Maps
- 24. Matplotlib Contour Clabel Ubicación
- 25. ¿Cómo representaría los siguientes datos 3D en Matplotlib o Mayavi?
- 26. imagen Matplotlib savefig recortar
- 27. Matplotlib: evitando la superposición de puntos de datos en un gráfico "scatter/dot/beeswarm"
- 28. Conectando dos puntos en un diagrama de dispersión 3D en Python y matplotlib
- 29. Número incorrecto de argumentos: llamado-interactivamente-p, 1
- 30. Obtener el contenido de una biblioteca interactivamente en R
Fwiw: También hay 'iselect()' en el paquete 'iplots' (para R). Esta es una generalización: implica vincular y cepillar. Lo mismo se puede hacer a través de la función 'get (, 'BrushData')' en Matlab. – Iterator
Derecha, y Rggobi también. Pero no estaba al tanto de la capacidad de Matlab para esto, la última vez que lo usé intensamente fue en los días de la versión 6.5. Parece haberse vuelto elegante desde entonces. – hatmatrix
Elegante y caro. El costo de R también se ha triplicado en la última década, pero sigue siendo una ganga. :) – Iterator