J'affiche une image jpg (je la fais pivoter de 90 degrés, si cela est pertinent) et bien sûr les axes affichent les coordonnées des pixels. Je voudrais convertir l'axe de sorte qu'au lieu d'afficher le nombre de pixels, il affichera mon unité de choix - que ce soit radians, degrés, ou dans mon cas une coordonnée astronomique. Je connais la conversion du pixel au degré (par exemple). Voici un extrait de ce que mon code ressemble actuellement:Comment puis-je convertir (ou mettre à l'échelle) les valeurs d'axe et redéfinir la fréquence des tiques dans 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()
... donc faisant suite à cela, puis-je prendre chaque valeur que matplotlib imprimerait sur l'axe, et le changement/le remplacer par une chaîne sortie à la place? Je voudrais faire cela pour un format de coordonnées spécifique - par exemple, plutôt qu'un angle de 10.44 (degrés), je voudrais qu'il lise 10 26 '24' '(ie, degrés, arminins, arcsecs)
Enfin sur ce thème, je voudrais contrôler la fréquence des tiques, sur l'intrigue. Matplotlib peut imprimer la valeur de l'axe tous les 50 pixels, mais je le voudrais vraiment tous les degrés (par exemple). Il semble que je voudrais définir un type de tableau avec les valeurs de pixels et leurs valeurs converties (degrés, etc.) que je veux afficher, en contrôlant la fréquence d'échantillonnage sur la plage xmin/xmax. Y at-il des experts Matplotlib sur Stack Overflow? Si oui, merci beaucoup d'avance pour votre aide! Pour en faire une expérience d'apprentissage plus, j'apprécierais vraiment d'être poussé dans le sens des tutoriels etc sur ce genre de problème matplotlib. Je me suis retrouvé très confus avec les axes, les axes, les figures, les artistes etc!
Cheers,
Dave
Merci - cela fonctionne superbement. Un autre commentaire cependant. Quand j'utilise plt.xticks, je n'obtiens plus la position x, y (je m'attendrais à ce que cela soit en pixels à tous égards) de la souris lorsque le tracé est affiché. Une idée de pourquoi cela serait? – Dave
Cela * est * étrange - je n'ai jamais remarqué cela auparavant. Je ne sais pas assez sur cette fenêtre GUI pour faire une recommandation - peut-être une bonne question ici ou sur la liste de diffusion matplotlib. –
Une meilleure solution pour convertir les coordonnées utilise le mot-clé 'extent' lors de l'utilisation de imshow. – Phlya