728x90
반응형
(문제)
로또번호 프로그램 을 파이썬으로 만들어보고있는데요
실제 데이터랑 비교하기위해서 1번~45번숫자로 6개를 뽑고
그걸 리스트나 numpy배열로 1040회차까지 만들어서 합친후
그걸 pyplot으로 그려서
1번~45번까지 각각 총 몇개(빈도)가 나왔는지 만들어보고싶은데(예시: 1번공은 총 56번출현 , 2번공은 총 70번 출현 ... 45번공은 55번출현)
(방법)
import random
import matplotlib.pyplot as plt
data = [] # 임의로 만들어진 6개 번호 저장용 리스트 변수
no_cnt = [0 for i in range(46)] # 각 번호가 출력하는 Count를 위한 리스트 변수. 전부 0으로 채움
for i in range(1040): # 1040번 반복
nos = random.sample(range(1,46), 6) # 1~45번까지 6개 번의 임의로 만들기
nos.sort() # 올림차순 정렬
data.append(nos) # data 변수에 추가. 이 프로그램에서 data가 불필요하나 다른 분석을 할 수있도록 만듬
for j in range(len(nos)): # 나온 숫자를 Count 하기 위한 반복문
no_cnt[nos[j]] += 1 # nos[j]가 5면 no_cnt[5]가 +1이 되는 식임.
def add_value_label(x_list,y_list): # bar chart에 값을 text로 표시
for i in range(1, len(x_list)+1):
plt.text(i-1,y_list[i-1],y_list[i-1])
fig = plt.figure(figsize=(10, 6)) # plot 크기 설정
plt.rcParams['font.family'] = 'NanumGothic' # 한글 가능하도록 폰트 설정
x_column = '번호'
y_column = '횟수'
x = [i for i in range(1,46)]
y = no_cnt[1:]
plt.bar(x, y) # bar chart 그리기
add_value_label(x, y) # 값 표시
plt.title("로또 번호 출련 횟수",fontsize=16) # 제목 쓰기
plt.show()

data를 pandas DataFrame으로 만들기
import random
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame(columns=range(6)) # 임의로 만들어진 6개 번호 저장용 pandas DataFrame변수
df.columns = ['no1','no2','no3','no4','no5','no6'] # DataFrame에 컬럼명 지정
no_cnt = [0 for i in range(46)] # 각 번호가 출력하는 Count를 위한 리스트 변수. 전부 0으로 채움
for i in range(1040): # 1040번 반복
nos = random.sample(range(1,46), 6) # 1~45번까지 6개 번의 임의로 만들기
nos.sort() # 올림차순 정렬
df.loc[len(df)+1] = nos # df 변수에 추가. 이 프로그램에서 df가 불필요하나 다른 분석을 할 수있도록 만듬
for j in range(len(nos)): # 나온 숫자를 Count 하기 위한 반복문
no_cnt[nos[j]] += 1 # nos[j]가 5면 no_cnt[5]가 +1이 되는 식임.
def add_value_label(x_list,y_list): # bar chart에 값을 text로 표시
for i in range(1, len(x_list)+1):
plt.text(i-1,y_list[i-1],y_list[i-1])
fig = plt.figure(figsize=(10, 6)) # plot 크기 설정
plt.rcParams['font.family'] = 'NanumGothic' # 한글 가능하도록 폰트 설정
x_column = '번호'
y_column = '횟수'
x = [i for i in range(1,46)]
y = no_cnt[1:]
plt.bar(x, y) # bar chart 그리기
add_value_label(x, y) # 값 표시
plt.title("로또 번호 출련 횟수",fontsize=16) # 제목 쓰기
plt.show()
- df의 내용 입니다.

728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : 학생의 학번에 학년 곱하기 (0) | 2023.01.10 |
|---|---|
| [파이썬] 문제 : 동물원 사육비 (pandas) (0) | 2023.01.10 |
| [파이썬] 문제 : 타자게임의 맞은개수, 정답률 출력 (0) | 2023.01.09 |
| [파이썬] 문제 : 5개의 코딩시험 점수 합계와 평균 함수 (0) | 2023.01.09 |
| [파이썬] 문제 : 두 수 입력 받아 -,+ 반복 공식 계산(2-3+4-5+6) (0) | 2023.01.08 |
댓글