Estoy visualizando una imagen jpg (giro esto 90 grados, si esto es relevante) y por supuesto los ejes muestran las coordenadas de píxeles. Me gustaría convertir el eje para que en lugar de mostrar el número de píxel, muestre mi unidad de elección, ya sea radianes, grados o en mi caso una coordenada astronómica. Sé la conversión de pixel a (por ejemplo) grado. Aquí hay un fragmento de lo que mi código es el momento:¿Cómo convierto (o escala) valores de eje y redefino la frecuencia de ticks en matplotlib?
import matplotlib.pyplot as plt
import Image
import matplotlib
thumb = Image.open(self.image)
thumb = thumb.rotate(90)
dpi = plt.rcParams['figure.dpi']
figsize = thumb.size[0]/dpi, thumb.size[1]/dpi
fig = plt.figure(figsize=figsize)
plt.imshow(thumb, origin='lower',aspect='equal')
plt.show()
... así que a raíz de esto, puedo tomar cada valor que matplotlib imprimiría en el eje, y el cambio/sustituirla por una cadena de salida en su lugar? Me gustaría hacer esto para un formato de coordenadas específico - por ejemplo, en lugar de un ángulo de 10.44 (grados), me gustaría leer 10 26 '24' '(es decir, grados, arcmins, arcsecs)
Finalmente sobre este tema, me gustaría tener control sobre la frecuencia de ticks, en la trama. Matplotlib podría imprimir el valor del eje cada 50 píxeles, pero realmente lo quisiera cada grado (por ejemplo).
Parece que quisiera definir algún tipo de matriz con los valores de píxel y sus valores convertidos (grados, etc.) que quiero que se muestren, teniendo control sobre la frecuencia de muestreo en el rango xmin/xmax.
¿Hay algún experto de matplotlib en Stack Overflow? Si es así, ¡muchas gracias de antemano por su ayuda! Para hacer de esto una experiencia de aprendizaje más, realmente agradecería que me guiaran por tutoriales, etc. sobre este tipo de problema matplotlib. ¡Me he confundido mucho con hachas, ejes, figuras, artistas, etc.!
Saludos,
de Dave
Gracias, esto funciona magníficamente. Sin embargo, un comentario más. Cuando uso plt.xticks, ya no obtengo la posición x, y (esperaría esto como píxeles en ningún aspecto) del mouse cuando se muestra el gráfico. ¿Alguna idea de por qué esto sería? – Dave
Eso * es * extraño - Nunca me había dado cuenta de esto antes. No sé lo suficiente sobre esa ventana GUI para hacer una recomendación, podría ser una buena pregunta aquí o en la lista de correo matplotlib. –
Una mejor solución para convertir coordenadas es usar la palabra clave 'extent' cuando se usa imshow. – Phlya