Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

504
Vistas
¿Cómo establecer el tamaño del marcador de leyenda y alfa?

Tengo un diagrama de dispersión marítimo ( lmplot ) con más de 10 lmplot puntos. Para percibir todos los datos, funciona mejor cuando el tamaño de la trama es mayor (lo que hace que los marcadores sean relativamente pequeños) y el alfa de los marcadores es bajo. Sin embargo, esto hace que los marcadores de la leyenda sean difíciles de distinguir. ¿Cómo se establece el tamaño del marcador y el marcador alfa en Seaborn?

Veo que g._legend tiene un atributo de tamaño de markersize , pero configurarlo directamente no hace nada.

Ejemplo

 import numpy as np import pandas as pd import seaborn as sns n_group = 4000 pos = np.concatenate((np.random.randn(n_group,2) + np.array([-1,-1]), np.random.randn(n_group,2) + np.array([0.2, 1.5]), np.random.randn(n_group,2) + np.array([0.6, -1.8]))) df = pd.DataFrame({"x": pos[:,0], "y": pos[:, 1], "label": np.repeat(range(3), n_group)}) g = sns.lmplot("x", "y", df, hue = "label", fit_reg = False, size = 8, scatter_kws = {"alpha": 0.1}) g._legend.set_title("Clusters")

Gráfico de dispersión de tres grupos densos de puntos, con diferentes colores para cada grupo. Los colores del grupo se distinguen fácilmente en el gráfico, pero los marcadores en la leyenda apenas son visibles.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede hacer esto configurando los valores alfa de los marcadores de leyenda. También puede usar _sizes para establecer los tamaños de marcador en el mismo bucle for:

 n_group = 4000 pos = np.concatenate((np.random.randn(n_group,2) + np.array([-1,-1]), np.random.randn(n_group,2) + np.array([0.2, 1.5]), np.random.randn(n_group,2) + np.array([0.6, -1.8]))) df = pd.DataFrame({"x": pos[:,0], "y": pos[:, 1], "label": np.repeat(range(3), n_group)}) g = sns.lmplot("x", "y", df, hue = "label", fit_reg = False, size = 8, scatter_kws = {"alpha": 0.1}) g._legend.set_title("Clusters") for lh in g._legend.legendHandles: lh.set_alpha(1) lh._sizes = [50] # You can also use lh.set_sizes([50])

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

lo anterior no funcionó para mí en un diagrama de línea marino. Esto hizo:

 g = sns.lineplot(data=df, x='X', y='Y', hue='HUE', ci=False, style='STYLE', markers=True, ms=16, dashes=False) #get legend and change stuff handles, lables = g.get_legend_handles_labels() for h in handles: h.set_markersize(10) # replace legend using handles and labels from above lgnd = plt.legend(handles, lables, bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0, title='TITLE')
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda