목차
[Python]확률 밀도 함수 그래프 그리기 : 필요 사항
앞서 포스트에서 확률 밀도 함수(Probability Density Function, PDF)에 대해 알아보고 파이썬 Numpy를 사용해서 특정 값에 확률 값을 대입해서 데이터 리스트(Data list)를 만들어 보았습니다.
https://scribblinganything.tistory.com/454
이번에는 앞서 포스트의 연장으로 확률 밀도 함수(Probability Density Function, PDF) 값을 가지고 그래프를 그리는 방법에 대해 알아 보겠습니다.
일반 그래프를 그릴 때 matplotlib을 사용해서 그리는 데 matplotlib을 기본으로 사용하여 확률 그래프를 그리기 편하게 도와주는 seaborn이라는 라이브러리를 사용하겠 습니다. seaborn을 사용하기 위해 아래와 같이 설치를 먼저 합니다.
pip install seaborn
[Python]확률 밀도 함수 그래프 그리기 : 실습
밀도 함수를 그리기 위해 seaborn.displot()함수를 사용 합니다.
입력 값으로 데이터 값과 kind 로 그래프 종류를 선택할 수 있습니다. kde는 밀도에 대한 그래프이고 hist는 histogram으로 표기한 그래프입니다.
예제 코드>>
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns
x_list = []
for _ in range(5):
x_list.append(random.randint(1,10))
pdf_list = random.choice(x_list, p=[0.05, 0.05, 0.2, 0.3, 0.4], size=(100))
print(x_list)
print(pdf_list)
sns.displot(pdf_list, kind="kde")
plt.show()
5~8번 라인: x_list에 5개의 랜덤값을 채움
10번 라인: 확률을 대입해 총 100개의 데이터를 만들어냄
14번 라인: seaborn을 사용해서 해당 데이터의 확률값을 y값으로 표기 합니다. x_list 대신 수식을 넣어서 그래프를 작성할 수 있습니다.
결과>>
[8, 9, 4, 6, 1]
[1 1 1 6 1 1 1 9 1 4 4 1 1 1 1 1 1 1 1 4 1 6 6 6 6 1 4 1 6 6 4 1 1 1 4 1 4
4 4 4 1 9 1 1 4 1 8 8 1 1 1 1 4 4 4 8 4 1 1 6 9 1 1 4 1 6 1 9 6 1 8 8 1 6
1 1 6 6 8 1 1 6 6 6 1 4 4 1 9 4 1 6 1 6 4 6 4 1 1 1]
참고 사항>>
참고로 distplot 함수는 향후에 대체될 함수로 사용하게 되면 아래와 같이 에러메세지가 발생합니다.
FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt
your code to use either `displot` (a figure-level function with similar flexibility) or `kdeplot` (an axes-level function for kernel density plots).
warnings.warn(msg, FutureWarning)
해결 책으로 앞서 예제와 같이 사용하거나 kdeplot 함수를 사용하면 됩니다.
'파이썬(Python) > numpy' 카테고리의 다른 글
[Python]이산 확률 분포란? 파이썬으로 구현하고 그래프로 그리기(Binomial/Discrete) (0) | 2022.01.18 |
---|---|
[Python]정규분포(가우시안분포)란? 파이썬 랜덤으로 만들고 그래프 그리기(Normal/Gaussian Distribution) (0) | 2022.01.18 |
[Python]확률밀도함수란? 데이터 셋 구현하기(Probability Density Function) (0) | 2022.01.17 |
[Python] 다양한 랜덤값 생성(정수,실수, 행렬, 선택, 범위선택) (0) | 2022.01.14 |
[Python] 리스트 값에 필터 적용하기(Numpy, Filter, Mask, 조건 걸기) (0) | 2022.01.13 |