Programing

데이터 목록과 함께 Python에서 Matplotlib를 사용하여 히스토그램을 그리는 방법은 무엇입니까?

lottogame 2020. 11. 11. 07:54
반응형

데이터 목록과 함께 Python에서 Matplotlib를 사용하여 히스토그램을 그리는 방법은 무엇입니까?


matplotlib.hist()함수를 사용하여 히스토그램을 그리 려고하는데 어떻게해야할지 모르겠습니다.

목록이 있습니다

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]

이름 (문자열) 목록.

확률을 각 막대의 y 값으로 만들고 x 값으로 이름을 지정하려면 어떻게해야합니까?


히스토그램을 원하면 x 축에 bin이 있으므로 x- 값에 '이름'을 첨부 할 필요가 없습니다.

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x = np.random.normal(size = 1000)
plt.hist(x, normed=True, bins=30)
plt.ylabel('Probability');

여기에 이미지 설명 입력

그러나 데이터 포인트 수가 제한되어 있고 막대 그래프가 필요한 경우 레이블을 x 축에 연결할 수 있습니다.

x = np.arange(3)
plt.bar(x, height= [1,2,3])
plt.xticks(x+.5, ['a','b','c'])

여기에 이미지 설명 입력

문제가 해결되면 알려주세요.

2018 년 11 월 26 일 수정

아래 주석에 따라 Matplotlib 3.0.2부터 다음 코드로 충분합니다.

x = np.arange(3)
plt.bar(x, height= [1,2,3]) 
plt.xticks(x, ['a','b','c']) # no need to add .5 anymore

2019 년 5 월 23 일 수정

히스토그램에 관한 한 normedparam은 더 이상 사용되지 않습니다.

MatplotlibDeprecationWarning : 'normed'kwarg는 Matplotlib 2.1에서 더 이상 사용되지 않으며 3.1에서 제거됩니다. 대신 '밀도'를 사용하십시오.

따라서 Matplolib 3.1대신 다음과 같습니다.

plt.hist(x, normed=True, bins=30) 

다음과 같이 작성해야합니다.

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
x = np.random.normal(size = 1000)
plt.hist(x, density=True, bins=30) # density
plt.ylabel('Probability');

여기에 이미지 설명 입력


아직 matplotlib를 설치하지 않은 경우 명령을 시도하십시오.

> pip install matplotlib

도서관 가져 오기

import matplotlib.pyplot as plot

히스토그램 데이터 :

plot.hist(weightList,density=1, bins=20) 
plot.axis([50, 110, 0, 0.06]) 
#axis([xmin,xmax,ymin,ymax])
plot.xlabel('Weight')
plot.ylabel('Probability')

히스토그램 표시

plot.show()

출력은 다음과 같습니다.

여기에 이미지 설명 입력


이것은 매우 둥근 방법이지만 이미 bin 값을 알고 있지만 소스 데이터가없는 히스토그램을 만들고 싶다면 np.random.randint함수를 사용하여 각 범위 내에서 올바른 수의 값을 생성 할 수 있습니다. 그래프에 대한 hist 함수의 bin, 예를 들면 다음과 같습니다.

import numpy as np
import matplotlib.pyplot as plt

data = [np.random.randint(0, 9, *desired y value*), np.random.randint(10, 19, *desired y value*), etc..]
plt.hist(data, histtype='stepfilled', bins=[0, 10, etc..])

레이블의 경우 x 눈금을 bin과 정렬하여 다음과 같은 결과를 얻을 수 있습니다.

#The following will align labels to the center of each bar with bin intervals of 10
plt.xticks([5, 15, etc.. ], ['Label 1', 'Label 2', etc.. ])

참고 URL : https://stackoverflow.com/questions/33203645/how-to-plot-a-histogram-using-matplotlib-in-python-with-a-list-of-data

반응형