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

481
Views
Sin contornos en contenedores de histogramas de Matplotlib o diagramas de distribución de Seaborn

Mientras hacía algunos problemas de práctica con seaborn y un cuaderno Jupyter, me di cuenta de que los gráficos distplot() no tenían los contornos más oscuros en los contenedores individuales que tienen todos los gráficos de muestra en la documentación. Intenté crear los gráficos usando Pycharm y noté lo mismo. Pensando que era un problema nacido en el mar, probé algunos gráficos hist() usando matplotlib, solo para obtener los mismos resultados.

 import matplotlib.pyplot as plt import seaborn as sns titanic = sns.load_dataset('titanic') plt.hist(titanic['fare'], bins=30)

arrojó el siguiente gráfico:

ingrese la descripción de la imagen aquí

Finalmente me topé con el parámetro 'edgecolor' en la función plt.hist(), y configurarlo en negro funcionó. Desafortunadamente, no he encontrado un parámetro similar para usar en la función distplot() de seaborn, por lo que todavía no puedo obtener un gráfico que se vea como debería.

Busqué cambiar los rcParams en matplotlib, pero no tengo experiencia con eso y el siguiente script que ejecuté parecía no hacer nada:

 import matplotlib as mpl mpl.rcParams['lines.linewidth'] = 1 mpl.rcParams['lines.color'] = 'black' mpl.rcParams['patch.linewidth'] = 1 mpl.rcParams['patch.edgecolor'] = 'black' mpl.rcParams['axes.linewidth'] = 1 mpl.rcParams['axes.edgecolor'] = 'black'

Solo estaba adivinando el valor que se suponía que debía cambiar, pero ejecutar mis gráficos nuevamente no mostró cambios.

Luego intenté volver a la configuración predeterminada usando mpl.rcdefaults() pero, una vez más, no hubo cambios.

Reinstalé matplotlib usando conda pero aún así los gráficos se ven iguales. Me estoy quedando sin ideas sobre cómo cambiar el color de borde predeterminado para estos gráficos. Estoy ejecutando las últimas versiones de Python, matplotlib y seaborn usando la compilación Conda.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Como parte de la actualización de matplotlib 2.0, los bordes de los gráficos de barras están desactivados de forma predeterminada . Sin embargo, puede usar el rcParam

 plt.rcParams["patch.force_edgecolor"] = True

para activar los bordes globalmente.

Probablemente, la opción más fácil es establecer específicamente el color del borde al crear una trama marina, usando el argumento hist_kws ,

 ax = sns.distplot(x, hist_kws=dict(edgecolor="k", linewidth=2))

Para diagramas de matplotlib, puede usar directamente el argumento edgecolor o ec .

 plt.bar(x,y, edgecolor="k") plt.hist(x, edgecolor="k")

Igualmente, para las parcelas de pandas,

 df.plot(kind='hist',edgecolor="k")

Un ejemplo marino completo:

 import numpy as np import matplotlib.pyplot as plt import seaborn as sns x = np.random.randn(100) ax = sns.distplot(x, hist_kws=dict(edgecolor="k", linewidth=2)) plt.show()

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Report

0

A partir de marzo de 2021:

 sns.histplot(data, edgecolor='k', linewidth=2)

trabaja. Usando hist_kws=dict(edgecolor="k", linewidth=2) dio un error:
AttributeError: 'PolyCollection' object has no property 'hist_kws'

over 4 years ago · Santiago Trujillo Report

0

Usar los estilos disponibles en seaborn también podría resolver su problema. Los estilos disponibles en seaborn son:

  1. garrapatas
  2. oscuro
  3. cuadrícula oscura
  4. blanco
  5. rejilla blanca
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!