목차

[Python]확률 밀도 함수 그래프 그리기 : 필요 사항
앞서 포스트에서 확률 밀도 함수(Probability Density Function, PDF)에 대해 알아보고 파이썬 Numpy를 사용해서 특정 값에 확률 값을 대입해서 데이터 리스트(Data list)를 만들어 보았습니다.
https://scribblinganything.tistory.com/454
[Python]확률밀도함수란? 데이터 셋 구현하기(Probability Density Function)
목차 확률밀도함수란(Probability Density Function, PDF)? 확률밀도함수란 연속 확률 변수를 나타내는 함수라고 합니다. 예를 들어 설명하면 어떤 통계학자가 테스트에 대한 시험을 동일 조건으로 여러
scribblinganything.tistory.com
이번에는 앞서 포스트의 연장으로 확률 밀도 함수(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 |