¿Cómo puedo poner texto en la esquina superior izquierda (o superior derecha) de una figura de matplotlib, por ejemplo, donde estaría una leyenda superior izquierda, o en la parte superior del gráfico pero en la esquina superior izquierda? Por ejemplo, si es un plt.scatter (), entonces algo que estaría dentro del cuadrado del scatter, colóquelo en la esquina superior izquierda.
Me gustaría hacer esto sin saber idealmente la escala del diagrama de dispersión que se está trazando, por ejemplo, ya que cambiará de un conjunto de datos a otro. Solo quiero que el texto esté aproximadamente en la parte superior izquierda o aproximadamente en la parte superior derecha. De todos modos, con el posicionamiento del tipo de leyenda, no debe superponerse con ningún punto del gráfico de dispersión.
¡Gracias!
text
yax.transAxes
) no se encuentra entre ellas.Respuestas:
Puede utilizar
text
.text
las coordenadas se pueden dar en relación con el eje, por lo que la posición de su texto será independiente del tamaño del gráfico:Evitar que el texto interfiera con cualquier punto de su dispersión es más difícil afaik. El método más fácil es establecer y_axis (ymax in
ylim((ymin,ymax))
) en un valor un poco más alto que la coordenada y máxima de sus puntos. De esta forma siempre tendrás este espacio libre para el texto.EDITAR: aquí tienes un ejemplo:
Los parámetros ha y va establecen la alineación de su texto en relación con el punto de inserción. es decir. ha = 'left' es un buen conjunto para evitar que un texto largo se salga del eje izquierdo cuando el marco se reduce (se hace más estrecho) manualmente.
fuente
from pylab import figure, text, scatter, show
código de la respuesta se ejecutó en una consola ipython en modo pylab donde las importaciones explícitas no eran necesarias. En un entorno limpio, debe importar lo anterior y hacershow()
para ver la tramaUna solución sería usar la
plt.legend
función, incluso si no desea una leyenda real. Puede especificar la ubicación del cuadro de leyenda utilizando el términoloc
clave. Se puede encontrar más información en este sitio web, pero también he incluido un ejemplo que muestra cómo colocar una leyenda:Tenga en cuenta que porque
loc=2
la leyenda está en la esquina superior izquierda del gráfico. Y si el texto se superpone con la trama, puede hacerlo más pequeño usandolegend.fontsize
, lo que luego hará que la leyenda sea más pequeña.fuente