Это старый вопрос, но ни один из предыдущих ответов не касался реальной проблемы, то есть того факта, что проблема связана с самим вопросом.
Во-первых, если вероятности уже были рассчитаны, т. Е. Агрегированные данные гистограммы доступны в нормализованном виде, тогда вероятности должны составлять в сумме 1. Очевидно, нет, и это означает, что здесь что-то не так, либо с терминологией, либо с данными. или в том, как задается вопрос.
Во-вторых, тот факт, что предоставляются метки (а не интервалы), обычно означает, что вероятности являются категориальной переменной отклика - и лучше всего использовать гистограмму для построения гистограммы (или некоторый взлом метода hist pyplot), Ответ Шаяна Шафика предоставляет код.
Однако см. Вопрос 1, эти вероятности неверны, и использование гистограммы в этом случае в качестве «гистограммы» было бы неправильным, потому что по какой-то причине она не рассказывает историю одномерного распределения (возможно, классы перекрываются, и наблюдения подсчитываются многократно. раз?) и такой график в данном случае не следует называть гистограммой.
Гистограмма по определению является графическим представлением распределения одномерной переменной (см. Https://www.itl.nist.gov/div898/handbook/eda/section3/histogra.htm , https://en.wikipedia.org/wiki / Гистограмма) и создается путем рисования полосок размеров, представляющих количество или частоту наблюдений в выбранных классах интересующей переменной. Если переменная измеряется в непрерывной шкале, эти классы являются ячейками (интервалами). Важной частью процедуры создания гистограммы является выбор того, как сгруппировать (или сохранить без группировки) категории ответов для категориальной переменной или как разбить область возможных значений на интервалы (где поставить границы бункера) для непрерывной тип переменная. Все наблюдения должны быть представлены, и каждое только один раз на графике. Это означает, что сумма размеров столбцов должна быть равна общему количеству наблюдений (или их площадям в случае переменной ширины, что является менее распространенным подходом). Или, если гистограмма нормализована, тогда все вероятности должны быть в сумме до 1.
Если сами данные представляют собой список «вероятностей» в качестве ответа, т. Е. Наблюдения представляют собой значения вероятности (чего-либо) для каждого объекта исследования, тогда лучшим ответом будет просто plt.hist(probability)
вариант биннинга, а использование уже доступных x-меток - подозрительно.
Тогда столбиковый график не следует использовать как гистограмму, а просто
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()
с результатами
matplotlib в таком случае прибывает по умолчанию со следующими значениями гистограммы
(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>)
результатом является кортеж массивов, первый массив содержит счетчики наблюдений, то есть то, что будет показано относительно оси y графика (в сумме они дают 13, общее количество наблюдений), а второй массив - это границы интервала для x -ось.
Можно проверить, они равномерно расположены,
x = plt.hist(probability)[1]
for left, right in zip(x[:-1], x[1:]):
print(left, right, right-left)
Или, например, для 3 ячеек (на мой взгляд, 13 наблюдений) можно получить эту гистограмму
plt.hist(probability, bins=3)
с сюжетными данными "за решеткой"
Автору вопроса необходимо уточнить, что означает список значений «вероятность» - это «вероятность» просто имя переменной ответа (тогда зачем там готовые х-метки для гистограммы, смысла нет ), или значения списка - вероятности, вычисленные на основе данных (тогда тот факт, что они не дают в сумме 1, не имеет смысла).