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

295
Views
No se puede obtener el histograma para mostrar contenedores separados con líneas verticales

Problema extraño molesto y aún no he podido encontrar una solución en este sitio (aunque ha aparecido la pregunta)

Estoy tratando de hacer un histograma donde los contenedores tienen el 'estilo de barra' donde las líneas verticales separan cada contenedor, pero no importa lo que cambie el constructor de histtype para obtener un histograma lleno de pasos.

Aquí está mi código. Tenga en cuenta que estoy usando jupyter notebook instalado a través de anaconda con python versión 2.7.6

 import numpy as np import matplotlib.pyplot as plt x = np.random.rand((100)) bins = np.linspace(0, 2, 40) plt.title('Relative Amplitude',fontsize=30) plt.xlabel('Random Histogram') plt.ylabel('Frequency',fontsize=30) plt.hist(x, bins, alpha=0.5, histtype='bar') plt.legend(loc='upper right',fontsize=30) plt.xticks(fontsize = 20) plt.yticks(fontsize = 20) plt.show()

Eso es todo y obtengo un diagrama lleno de pasos sin líneas verticales que separen las barras. Lo que es molesto es que no tuve este problema hace un tiempo, algo claramente ha cambiado y no sé qué. También probé histype = 'barstacked'. Gracias amablemente por su ayuda

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Usando tu ejemplo:

 import numpy as np import matplotlib.pyplot as plt x = np.random.rand((100)) bins = np.linspace(0, 2, 40) plt.title('Relative Amplitude',fontsize=30) plt.xlabel('Random Histogram') plt.ylabel('Frequency',fontsize=30) plt.hist(x, bins, alpha=0.5, histtype='bar', ec='black') plt.legend(loc='upper right',fontsize=30) plt.xticks(fontsize = 20) plt.yticks(fontsize = 20) plt.show()

Lo que produce la siguiente imagen:

ingrese la descripción de la imagen aquí

La diferencia clave es el uso del argumento de palabra clave ec . Esta es la abreviatura de "color de borde". En la documentación de plt.hist dice que, además de todos los argumentos de palabras clave enumerados, plt.hist también toma argumentos de palabras clave para el inicializador de Patch . edgecolor es uno de esos argumentos de palabras clave. Es por eso que no aparece explícitamente en la documentación de plt.hist . Todas las barras en el gráfico son un objeto Patch individual, por lo que está diciendo que desea que todas las barras se dibujen con un contorno negro (o color de borde en la jerga de edgecolor ).

over 4 years ago · Santiago Trujillo Report

0

Funciona para mí si le doy diferentes colores al argumento edgecolor y al argumento color . Por ejemplo:

 import numpy as np import matplotlib.pyplot as plt x = np.random.rand((100)) bins = np.linspace(0, 2, 40) plt.title('Relative Amplitude',fontsize=30) plt.xlabel('Random Histogram') plt.ylabel('Frequency',fontsize=30) plt.hist(x, bins, alpha=0.5,edgecolor='black',color='steelblue', histtype='bar') plt.legend(loc='upper right',fontsize=30) plt.xticks(fontsize = 20) plt.yticks(fontsize = 20) plt.show()
over 4 years ago · Santiago Trujillo Report

0

Puede usar el parámetro rwidth en plt.hist . Tenga en cuenta que estoy usando matplotlib versión '3.4.2'.

rwidth: flotante o Ninguno, predeterminado: Ninguno El ancho relativo de las barras como una fracción del ancho del contenedor. Si no hay, calcula automáticamente el ancho.

 import numpy as np import matplotlib.pyplot as plt x = np.random.rand((100)) bins = np.linspace(0, 2, 40) plt.title('Relative Amplitude',fontsize=30) plt.xlabel('Random Histogram', fontsize=30) plt.ylabel('Frequency',fontsize=30) plt.hist(x, bins, rwidth=0.6, alpha=0.5, histtype='bar')# rwidth specify the width of the bars # rwidth is an number between 0 and 1 plt.xticks(fontsize=15) plt.yticks(fontsize=15) plt.xlim(0,1) plt.show()

Qué producto esta imagen (haga clic aquí)

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!