이것은 오래된 질문이지만 이전 답변 중 어느 것도 실제 문제, 즉 문제가 질문 자체에 있다는 사실을 해결하지 못했습니다.
첫째, 확률이 이미 계산 된 경우, 즉 히스토그램 집계 데이터를 정규화 된 방식으로 사용할 수있는 경우 확률은 1이되어야합니다. 분명히 그렇지 않으며 용어 나 데이터에 문제가 있음을 의미합니다. 또는 질문하는 방식으로.
둘째, 레이블이 제공된다는 사실 (구간이 아님)은 일반적으로 확률이 범주 형 반응 변수라는 것을 의미하며 막대 그래프를 사용하여 히스토그램을 그리는 것이 가장 좋습니다 (또는 플롯의 hist 방법을 해킹). Shayan Shafiq의 답변은 코드를 제공합니다.
그러나 문제 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)
"막대 뒤에있는"플롯 데이터는
질문의 작성자는 "확률"값 목록의 의미가 무엇인지 명확히해야합니다. "확률"은 응답 변수의 이름 일뿐입니다 (그런 다음 히스토그램을위한 x- 라벨이 준비된 이유는 무엇입니까? ) 또는 데이터에서 계산 된 확률의 목록 값입니다 (그러면 합계가 1이되지 않는다는 사실은 의미가 없습니다).