es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ajuste del tamaño del marcador en un gráfico de dispersión al utilizar el argumento ‘tamaño’.

Digamos que estoy creando un gráfico de dispersión en proyección polar en Matplotlib. Asigno el tamaño de los marcadores a una variable usando el argumento “size”. En el gráfico resultante, los marcadores son muy pequeños y algunos apenas son visibles. También necesito una leyenda para mostrar los valores reales de los marcadores de diferentes tamaños. Por lo tanto, necesito aumentar el tamaño de los marcadores, pero sin cambiar las etiquetas en la leyenda (por lo que “s=3*t” no funciona ya que cambia las etiquetas en la leyenda). ¿Cuál sería la mejor manera de hacer esto?

En este ejemplo, r, s, c y t son simples arreglos de una dimensión.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para aumentar el tamaño de los marcadores sin cambiar las etiquetas en la leyenda, una opción es crear un gráfico de dispersión separado para cada categoría de tamaño, cada uno con una etiqueta de leyenda diferente. Aquí hay un ejemplo:

    fig = plt.figure(figsize=(5,5))
    plt.style.use('default')
    ax = fig.add_subplot(projection='polar')
    sizes = np.unique(t)
    for size in sizes:
        mask = t == size
        ax.scatter(r[mask], s[mask], c=c[mask], s=size, cmap='copper', label=f'size={size}')
    ax.set_theta_zero_location('N')
    ax.set_theta_direction(-1)
    plt.legend(loc=(1, 0.8))
    plt.show()
    

    Este código recorre los tamaños únicos en t y crea un gráfico de dispersión para cada tamaño usando una máscara booleana. El argumento label se establece en una cadena que incluye el tamaño actual. Finalmente, se crea una sola leyenda fuera del bucle.

Comments are closed.