Esta es una pregunta antigua, pero ninguna de las respuestas anteriores ha abordado el problema real, es decir, el hecho de que el problema está en la pregunta en sí.
Primero, si las probabilidades ya se han calculado, es decir, los datos agregados del histograma están disponibles de manera normalizada, entonces las probabilidades deben sumar 1. Obviamente no es así y eso significa que algo anda mal aquí, ya sea con la terminología o con los datos. o en la forma en que se hace la pregunta.
En segundo lugar, el hecho de que se proporcionen las etiquetas (y no los intervalos) normalmente significaría que las probabilidades son de una variable de respuesta categórica, y lo mejor es utilizar un gráfico de barras para trazar el histograma (o alguna piratería del método hist del pyplot), La respuesta de Shayan Shafiq proporciona el código.
Sin embargo, vea el problema 1, esas probabilidades no son correctas y usar un diagrama de barras en este caso como "histograma" sería incorrecto porque no cuenta la historia de la distribución univariante, por alguna razón (quizás las clases se superponen y las observaciones se cuentan múltiples veces?) y dicho gráfico no debería llamarse histograma en este caso.
El histograma es, por definición, una representación gráfica de la distribución de una variable univariante (consulte https://www.itl.nist.gov/div898/handbook/eda/section3/histogra.htm , https://en.wikipedia.org/wiki / Histograma) y se crea dibujando barras de tamaños que representan recuentos o frecuencias de observaciones en clases seleccionadas de la variable de interés. Si la variable se mide en una escala continua, esas clases son contenedores (intervalos). Una parte importante del procedimiento de creación del histograma es elegir cómo agrupar (o mantener sin agrupar) las categorías de respuestas para una variable categórica, o cómo dividir el dominio de valores posibles en intervalos (dónde poner los límites del contenedor) para continuos. tipo de variable. Todas las observaciones deben estar representadas y cada una solo una vez en la trama. Eso significa que la suma de los tamaños de las barras debe ser igual al recuento total de observación (o sus áreas en el caso de los anchos variables, que es un enfoque menos común). O, si el histograma está normalizado, todas las probabilidades deben sumar 1.
Si los datos en sí son una lista de "probabilidades" como respuesta, es decir, las observaciones son valores de probabilidad (de algo) para cada objeto de estudio, entonces la mejor respuesta es simplemente plt.hist(probability)
con la opción quizás de agrupamiento, y el uso de etiquetas x ya disponibles es suspicaz.
Entonces el diagrama de barras no debe usarse como histograma, sino simplemente
import matplotlib.pyplot as plt
probability = [0.3602150537634409, 0.42028985507246375,
0.373117033603708, 0.36813186813186816, 0.32517482517482516,
0.4175257731958763, 0.41025641025641024, 0.39408866995073893,
0.4143222506393862, 0.34, 0.391025641025641, 0.3130841121495327,
0.35398230088495575]
plt.hist(probability)
plt.show()
con los resultados
matplotlib en tal caso llega por defecto con los siguientes valores de histograma
(array([1., 1., 1., 1., 1., 2., 0., 2., 0., 4.]),
array([0.31308411, 0.32380469, 0.33452526, 0.34524584, 0.35596641,
0.36668698, 0.37740756, 0.38812813, 0.39884871, 0.40956928,
0.42028986]),
<a list of 10 Patch objects>)
el resultado es una tupla de matrices, la primera matriz contiene recuentos de observaciones, es decir, lo que se mostrará contra el eje y del gráfico (suman 13, número total de observaciones) y la segunda matriz son los límites de intervalo para x -eje.
Se puede comprobar que estén igualmente espaciados,
x = plt.hist(probability)[1]
for left, right in zip(x[:-1], x[1:]):
print(left, right, right-left)
O, por ejemplo, para 3 contenedores (mi juicio requiere 13 observaciones) uno obtendría este histograma
plt.hist(probability, bins=3)
con los datos de la trama "detrás de las rejas" siendo
El autor de la pregunta debe aclarar cuál es el significado de la lista de valores de "probabilidad": la "probabilidad" es solo un nombre de la variable de respuesta (entonces, ¿por qué hay etiquetas x listas para el histograma? No tiene sentido ), o son los valores de la lista las probabilidades calculadas a partir de los datos (entonces el hecho de que no sumen 1 no tiene sentido).