Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

500
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!