강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

nsa0303님의 프로필 이미지
nsa0303

작성한 질문수

파이썬 그래프 scipy

작성

·

289

0

파이썬에서 import scipy.stats as stats를 활용해서 이산확률분포의 그래프를 그리는 문제인데요

1개의 동전을 계속하여 3회 던져서 앞면의 수의 횟수 X의 분포함수를 구하고 분포함수의 그래프를 그리는 문제인데 그래프가 자꾸 잘 안 그려져서요,,, 혹시 아시는 분 있을까요?

import scipy.stats as stats

import matplotlib.pyplot as plt


# 동전을 던지는 횟수

tosscoin = 3


# 이항 분포를 생성합니다.

binomial_distribution = stats.binom(n=tosscoin, p=0.5)


# 이항 분포에서 각 앞면이 나온 횟수에 대한 확률을 계산합니다.

x_values = range(tosscoin + 1)

prob_distribution = [binomial_distribution.pmf(x) for x in x_values]


# stem plot 그리기

plt.stem(x_values, prob_distribution, basefmt=" ", bottom=0, use_line_collection=True)


plt.xticks(x_values)

plt.yticks([1/8, 4/8, 7/8, 1], ['1/8', '4/8', '7/8', '1'])  # y 축 눈금 값 설정

 

 

아래의 그래프 처럼 생성되어야하는데 잘 안돼서,,,올려봅니다,,이항분포.png

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

nsa0303님, 코드를 확인해보니 이산확률분포의 그래프를 이항분포를 통해 그리려는 시도가 좋아 보입니다. 그러나 제공하신 코드와 설명을 바탕으로, 문제 해결을 위해 몇 가지 수정 사항을 제안드리고자 합니다.

  1. 분포함수의 그래프를 그리기 위해서는 plt.stem 대신 plt.step 함수를 사용하시는 것이 적절합니다. plt.stem 함수는 각 데이터 포인트에 줄기를 그리는 것이며, 분포함수의 누적 분포를 나타내는 데는 plt.step 함수가 더 적합합니다.
  2. plt.step 함수는 누적 분포 함수(cumulative distribution function)를 그리는 데 사용할 수 있습니다. 따라서 먼저 이항 분포의 누적 확률을 계산해야 합니다.
  3. 코드에 누적 확률을 계산하는 부분을 추가하고, plt.step 함수를 사용해 그래프를 그리는 예 시를 아래에 제시했습니다.
import scipy.stats as stats
import matplotlib.pyplot as plt

# 동전을 던지는 횟수
tosscoin = 3

# 이항 분포를 생성합니다.
binomial_distribution = stats.binom(n=tosscoin, p=0.5)

# 이항 분포에서 각 앞면이 나온 횟수에 대한 확률을 누적해서 계산합니다.
x_values = range(tosscoin + 1)
cummulative_prob_distribution = [binomial_distribution.cdf(x) for x in x_values]

# step plot 그리기
plt.step(x_values, cummulative_prob_distribution, where='post')

# 그래프 눈금 설정
plt.xticks(x_values)
plt.yticks([i/8 for i in range(1, 9)], ['1/8', '2/8', '3/8', '4/8', '5/8', '6/8', '7/8', '1'])

# 그래프 제목과 축 라벨 설정
plt.title('Binomial Distribution - Cumulative Probability')
plt.xlabel('Number of Heads')
plt.ylabel('Cumulative Probability')
plt.grid(True) # 그리드 표시 추가
plt.show()

이 코드 수정을 통해 원하시는 이산확률분포의 그래프를 그릴 수 있을 거라 기대합니다. 추가로 설명이 필요하시거나 다른 질문이 있으시면 알려주세요.

이항분포
이미지 출처

nsa0303님의 프로필 이미지
nsa0303

작성한 질문수

질문하기