Estoy trazando una curva de acimut-elevación en una gráfica polar donde la elevación es la componente radial. Por defecto, Matplotlib traza el valor radial de 0 en el centro a 90 en el perímetro. Quiero invertir eso, así que 90 grados está en el centro. Intenté establecer los límites con una llamada a ax.set_ylim (90,0), pero esto da como resultado una excepción LinAlgError lanzada. ax es el objeto de ejes obtenido de una llamada a add_axes.Establecer el eje radial en los trazados polares de Matplotlib
¿Se puede hacer esto y, de ser así, qué debo hacer?
Editar: Esto es lo que estoy usando ahora. El código de trazado básico fue tomado de uno de los ejemplos matplotlib
# radar green, solid grid lines
rc('grid', color='#316931', linewidth=1, linestyle='-')
rc('xtick', labelsize=10)
rc('ytick', labelsize=10)
# force square figure and square axes looks better for polar, IMO
width, height = matplotlib.rcParams['figure.figsize']
size = min(width, height)
# make a square figure
fig = figure(figsize=(size, size))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='polar', axisbg='#d5de9c')
# Adjust radius so it goes 90 at the center to 0 at the perimeter (doesn't work)
#ax.set_ylim(90, 0)
# Rotate plot so 0 degrees is due north, 180 is due south
ax.set_theta_zero_location("N")
obs.date = datetime.datetime.utcnow()
az,el = azel_calc(obs, ephem.Sun())
ax.plot(az, el, color='#ee8d18', lw=3)
obs.date = datetime.datetime.utcnow()
az,el = azel_calc(obs, ephem.Moon())
ax.plot(az, el, color='#bf7033', lw=3)
ax.set_rmax(90.)
grid(True)
ax.set_title("Solar Az-El Plot", fontsize=10)
show()
la trama que resulta de esto es
¿Qué código ya tiene? Eso puede ser de gran ayuda para responder su pregunta (en particular, la segunda parte). – Evert
Imagino que se puede hacer con una función de mapeo que invierta las coordenadas radiales y establezca manualmente las etiquetas radiales. ¿Es esto suficiente o realmente quieres redefinir el eje radial? –