2017-03-29 2 views
3

J'essaye de créer une parcelle polaire astronomique avec un axe radial qui commence à partir de -45 ° sur la ligne extérieure et augmente à 90 ° au centre de la parcelle. Mais je n'ai trouvé aucun moyen d'inverser l'axe radial de l'instance PolarAxes. invert_yaxis() La méthode ne fonctionne pas du tout. En outre, il existe certains cachés méthodes telles que ax.set_rlim() qui n'a aucun document.Inverser les axes radiaux de la parcelle polaire de Matplotlib

Voici mon code actuel:

fig = plt.figure() 
ax = fig.add_axes([0.1,0.1,0.8,0.8], polar=True) 
# ax.invert_yaxis() 
ax.set_theta_zero_location('N') 
ax.set_ylim(-45, 90) 
ax.set_yticks(np.arange(-45, 90, 15)) 
ax.plot(ras, decs, linestyle='', marker='.') 

et ma parcelle

+0

Voir la réponse à cette question: http://stackoverflow.com/questions/12075001/set-radial-axis-on-matplotlib-polar-plots – Craig

Répondre

1

Il est un peu « aki », mais si vous connaissez les limites (ce qui semble comme vous comme il correspond à la déclinaison) vous pourriez faire quelque chose comme:

import matplotlib.pyplot as plt 
import numpy as np 

fig = plt.figure() 
ax = fig.add_axes([0.1,0.1,0.8,0.8], polar=True) 
# ax.invert_yaxis() 
ax.set_theta_zero_location('N') 
ax.set_rlim(90, -45, 1) 
# Note: you must set the end of arange to be slightly larger than 90 or it won't include 90 
ax.set_yticks(np.arange(-45, 91, 15)) 
ax.set_yticklabels(ax.get_yticks()[::-1]) 
ax.plot([0,10,20], 90-np.array([12,13,14]), linestyle='', marker='.') 
fig.show() 

enter image description here

+0

Cela semble correct, mais l'axe réel est toujours le même - regarde les valeurs. Nous devons donc également les convertir. –