목차
데이터 시각화**(data visualization)**
- 점이나 선, 막대 그래프 등의 시각적 이미지를 사용하여 데이터를 화면에 표시하는 기술
- 효과적인 시각화는 사용자가 데이터를 분석하고 추론하는 데 도움
- 데이터를 직관적으로 이해
- matplotlib
- 데이터 시각화 도구
- 선 그래프, 산포도 등 다양한 그래프 그리는 용도
맷플롯립 활용 단계
- pyplot 모듈 불러오기
- import matplotlib.pyplot as plt
- plt 별칭 사용
- import matplotlib.pyplot as plt
- 수치 데이터 정의 → 리스트, 넘파이 배열
- 2차원 데이터 → x축 데이터, y축 데이터
- x축, y축 데이터 개수 동일
- 그래프 종류 결정
- 선 그래프 → plot() 함수
- 그래프 세부 설정은 인자로 전달 → 선 색, 마크 종류, 선 두께 등
- 선 그래프 → plot() 함수
- 제목, y축 레이블 설정
- title() 함수, ylabel() 함수
- 그래프 출력
- show() 함수
선 그래프
- plot() 함수
- plt.plot(xarr, yarr, color, marker, linestyle)
- color
- r(red), g(green), b(blue), c(cyan), y(yellow), k(black), ...
- maker
- 원(o), 세모(^, v, <, >), 네모(s), 별(*), ...
- linestyle
- solid(-), dashed(--), dotted(:), dash-dot(-.)
- color
- plt.plot(xarr, yarr, format_string)
- format_string : 색상 + 마커 모양 + 라인스타일
- ex) ‘ro--’ = 빨간색, 원형 마커, 실선
- ex) ‘b^--’= 파란색, 세모 마커, 실선
막대 그래프
- bar() 함수
- plt.bar(xarr, yarr) → 막대 그래프 생성
- xticks() 함수
- plt.xticts(xarr, ticks) → x축 값에 눈금 표시
산포도(산점도) 그래프
- scatter() 함수
- 개별 데이터 포인트를 그리는 차트
- 산포도를 그릴 때는 각 데이터 포인트가 연결 안됨
파이 차트(pie chart)
- 범주별 구성 비율을 원형으로 표현한 그래프
- pie() 함수
- plt.pie(data, labels = data_labels, autopct = ‘%.1f%%’)
- data 배열과 data의 레이블 배열 전달
- 백분율 표시 형식 전달
- plt.pie(data, labels = data_labels, autopct = ‘%.1f%%’)
파이 차트 : 부채꼴 분리
- plt.pie(radio, labels=labels, autopct='%.1f%%’, startangle=260, counterclock=False, explode=exp)
- startangle = 첫번째 항목 시작 각도, counterclock = 반시계방향 여부
- explode = 부채꼴이 파이 차트 중심에서 벗어난 정도 è 실수 배열
파이 차트: 부채꼴 분리 - page 20 (stratangle=?? 로 지정하였을때 어떠한 결과가 나오는지 시험에 나올수 있음
파이 차트 : 그림자. 색상 지정
- plt.pie(radio, labels=labels, autopct='%.1f%%’, startangle=260, counterclock=False, explode=exp, shadow=True, colors=colors)
- 파이 차트 그림자 표시, 항목별 색상 배열 전달
히스토그램(histogram)
- 도수분포표를 막대 그래프로 나타낸 것
- 가로축은 계급**(구간),** 세로축은 도수**(횟수나 개수 등)**
- plt.hist(arr, bins=10) 함수 → bins = 구간 개수
정규분포를 보여줄때 자주 사용한다
bins 이해 해보자
히스토그램 : 막대 모양
- plt.hist**(x, label,** histtype = 'stepfilled'****)
- histtype : {‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}
다중 히스토그램
- plt.hist(x, bins, histtype, color= "blue", alpha=0.3);
- color : 히스토그램 색상 지정, alpha : 투명도(0=투명 `~ 1=불투명)
정규분포 난수 히스토그램
- 정규 분포 난수 배열 생성 함수
- np.random.randn(10000) → 정규분포 난수 배열, 평균 0, 표준편차 1
- == np.random.normal(0, 1, 10000)
균일분포, 정규분포, 표준정규분포
- np.random.randn(10000) è 정규분포(평균 0, 표준편차 1) 난수배열 생성
- np.random.standard_normal(10000) → 표준정규분포 난수배열 생성
- np.random.rand(10000) → 균일분포 (0~1.0) 난수배열 생성
rand 함수와 randn 의 함수의 차이 : rand 함수는 균일분포 만들때, randn은 정규분포 만들 때 사용
상자 차트(box plot)
- box-whisker plot이라고도 함
- boxplot() 함수
- plt.boxplot([배열 리스트]) è 각 배열에 대해 상자 차트 생성
- 전체 데이터로부터 얻어진 요약 수치를 사용해 그림
- 최소값
- 제1사분위수(Q1)
- 하위 25% 해당 값
- 제2사분위수(Q2)
- 중앙값
- 제3사분위수(Q3)
- 상위 25% 해당 값
- 최대값
실습
import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [67.0, 80.0, 257.0, 1686.0, 6505, 11865.3, 22105.3]
# 선 그래프, x축 years 값, y축 gdp 값
plt.plot(years, gdp, color='green', marker='o', linestyle='solid')
# 제목 설정
plt.title("GDP per capita")
# y축에 레이블 설정
plt.ylabel("dollars")
# png 이미지 파일로 저장
plt.savefig("gdp_per_capita.png", dpi=600)
plt.show()
최솟값 , 최대값에 해당되는 값을 자동으로 양 끝쪽(x, y) 균일한 간격으로 만들어준다

수학 함수 그래프
import matplotlib.pyplot as plt
x = [x for x in range(-10, 10)] # x값 설정, -10 ~ 10
y = [2*t for t in x] # y(=2*x) 값 설정
plt.plot(x, y, marker='o') # 선 그래프, 마커 = o(원)
plt.axis([-20, 20, -20, 20]) # x축, y축 범위 지정
# axis ([-20, 20, -20, 20])는 값의 최소값과 최대값으로 범위를 설정하지 않고
# x값 -20부터 20까지, y값 -20부터 20까지의 범위를 설정한다.
plt.show() # 그래프를 보여준다

난수 그래프
import numpy as np
x = [x for x in range(1000)] # x값 설정, 0~ 1000
y = np.random.rand(1000) * 6 - 3 # y 값 설정, [-3, 3 ] * 1000
plt.figure(figsize=(12, 4)) # 그래프 사이즈 설정 , 키워드 인
plt.title("Random Numbers") # 제목 설정
plt.plot(x, y, 'bo-') # 포맷팅
plt.axis([0, 1000, -3.5, 3.5]) # x축, y축 범위 지정
plt.show()

# plot은 가변인자 함수
# 포맷 스트링을 활용한 차트 장
# 1차 함수 1개 , 2차 함수 2개
import matplotlib.pyplot as plt
x = [x for x in range(-20, 20)] # -20 ~ 20 정수
y1 = [2*t for t in x] # y1 = 2 * x
y2 = [t**2 + 5 for t in x] # y2 = x**2 + 5
y3 = [-t**2 - 5 for t in x] # y3 = -x**2 - 5
# 빨강색 점선, 녹색 실선과 세모기호, 파랑색 별표와 점선
plt.plot(x, y1, 'r--', x, y2, 'g^-', x, y3, 'b*:')
plt.axis([-30, 30, -30, 30]) # x축, y축 범위 지정
plt.show()

범례
- 그래프에 범례 출력 è plt.legend() 함수 호출
- 범례 항목(레이블) 지정 è plt.plot(x, y, label=‘값’)
# 범례
x = [x for x in range(20)] # x = 0 ~ 20까지 정수 생성
y = [x**2 for x in range(20)] # y = x의 제곱값
z = [x**3 for x in range(20)] # z = x의 제곱값
plt.plot(x, x, label='linear') # 각 선에 대한 레이블 지정
plt.plot(x, y, label='quadratic') # label를 지정하여야지만 범례 사용 가능
plt.plot(x, z, label='qubic')
plt.xlabel('x label') # x축의 레이블
plt.ylabel('y label') # y축의 레이블
plt.legend() # 그래프의 레이블의 범례를 보여준다
plt.show()

사인그래프
# 사인 그래프
# 0~ 360도 사이의 사인 함수 그래프 출력
# 리스트 함축 사용
import math
x = [angle for angle in range(360)]
y = [math.sin(math.radians(angle)) for angle in range(360)]
plt.plot(x, y, label="SINE")
plt.title("SINE WAVE")
plt.legend()
plt.show()

코사인그래프
import math
import matplotlib.pyplot as plt
x = [angle for angle in range(360)] # 리스트 함축 사용
z = [math.cos(math.radians(angle)) for angle in range(360)]
y = [math.sin(math.radians(angle)) for angle in range(360)]
plt.plot(x, y, label="SINE") # label 지정
plt.plot(x, z, 'r-', label="COSINE") # label 지정
plt.title("SINE & COSINE WAVE")
plt.legend() # 범례 표시
plt.show()

막대 그래프
# 막대 그래프
import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [67.0, 80.0, 257.0, 1686.0, 6505, 11865.3, 22105.3]
plt.bar(range(len(years)), gdp, label="GDP") # 막대 그래프 생성
plt.title("GDP per capita income") # 제목 설정
plt.ylabel("dollars") # y축에 레이블을 붙인다.
plt.xticks(range(len(years)), years) # 눈금 레이블 표시
plt.legend() # 범례 표시
plt.show()

- bar() 함수
- plt.bar(xarr, yarr) è 막대 그래프 생성
- xticks() 함수
- plt.xticts(xarr, ticks) è x축 값에 눈금 표시
# 다중 막대 그래
import numpy as np
years = [1965, 1975, 1985, 1995, 2005, 2015]
ko = [130, 650, 2450, 11600, 17790, 27250]
jp = [890, 5120, 11500, 42130, 40560, 38780]
ch = [100, 200, 290, 540, 1760, 7940]
x = np.arange(len(years)) # x값 설정, 넘파이 배열
plt.bar(x + 0.0, ko, width=0.25, label="KO") # 막대 위치와 크기 변경
plt.bar(x + 0.3, jp, width=0.25, label="JP") # 막대 위치와 크기 변경
plt.bar(x + 0.6, ch, width=0.25, label="CH") # 막대 위치와 크기 변경
# (x + 0.?) 는 x축의 위치에서[0, 1, 2, 3, ....] 3개를 표시하기 위해 사용
# width는 막대의 너비를 조정한다 기본값은 1
plt.xticks(range(len(years)), years) # 눈금 표시
plt.legend() # 범례 표시
plt.show()

산포도 그래프
- scatter() 함수
- 개별 데이터 포인트를 그리는 차트
- 산포도를 그릴 때는 각 데이터 포인트가 연결 안됨
# 산포도(산점도) 그래프
# scatter() 함수
# 개별 데이터 포인트를 그리는 차트
# 산포도를 그릴 때는 각 데이터 포인터가 연결 안됨
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20, 50) # 크기 30인 넘파이 배열, 20 ~ 49
y = x + 2*np.random.randn(30) # x값에 [0, 2) 정규분포 난수 더하기
plt.scatter(x, y) # 산포도 생성
plt.title("Real Age vs Rhysical Age") # 제목 설정
plt.xlabel("Real Age") # x축 이름
plt.ylabel("Physical Age") # y축 이름
plt.savefig("kkk.png", dpi=600) # 그래프 지정
plt.show()

- plt.scatter(x, y, s=area, c=colors)
- s = 각 점의 크기 값을 나타내는 배열 전달
- c = 각 점의 색상 값을 나타내는 배열 전달
# 산포도(산점도) 색상, 크기 지정
# plt.scatter(x, y, s=area, c=color)
np.random.seed(0)
n = 50
x = np.random.rand(n) # 0~1 사이의 실수
y = np.random.rand(n)
area = (30 * np.random.rand(n)) ** 2 # 각 점의 크기
colors = np.random.rand(n) # 각 점의 색상
plt.scatter(x, y, s=area, c=colors) # 산포도 생성
plt.show()

파이차트
# 파이 차트
ratio = [34, 32, 16, 18]
labels = ['Apple', 'Banana', 'Melon', 'Grapes']
plt.pie(ratio, labels=labels, autopct='%.1f%%')
plt.show()

파이차트 부채꼴 분리
# 파이 차트 : 부채꼴 분리
ratio = [34, 32, 16, 18]
lables = ['Apple', 'Banana', 'Melon', 'Grapes']
exlode = [0, 0.10, 0, 0.10]
plt.pie(ratio, labels=lables, autopct='%.1f%%', startangle=260, counterclock=False, explode=exlode)
plt.show()

파이차트 그림자 색상 지정
ratio = [34, 32, 16, 18]
lables = ['Apple', 'Banana', 'Melon', 'Grapes']
exlode = [0.05, 0.05, 0.05, 0.05]
colors = ['silver', 'gold', 'whitesmoke', 'lightgray']
plt.pie(ratio, labels=lables, autopct='%.1f%%', startangle=260, counterclock=False, explode=exlode, shadow=True,
colors=colors)
plt.show()

import matplotlib.pyplot as plt
weight = [68, 81, 64, 56, 78, 74, 61, 77, 66, 68, 59, 71,
80, 59, 67, 81, 69,73, 69, 74, 70, 65]
plt.hist(weight, bins= 25)
plt.show()
데이터 시각화**(data visualization)**
- 점이나 선, 막대 그래프 등의 시각적 이미지를 사용하여 데이터를 화면에 표시하는 기술
- 효과적인 시각화는 사용자가 데이터를 분석하고 추론하는 데 도움
- 데이터를 직관적으로 이해
- matplotlib
- 데이터 시각화 도구
- 선 그래프, 산포도 등 다양한 그래프 그리는 용도
맷플롯립 활용 단계
- pyplot 모듈 불러오기
- import matplotlib.pyplot as plt
- plt 별칭 사용
- import matplotlib.pyplot as plt
- 수치 데이터 정의 → 리스트, 넘파이 배열
- 2차원 데이터 → x축 데이터, y축 데이터
- x축, y축 데이터 개수 동일
- 그래프 종류 결정
- 선 그래프 → plot() 함수
- 그래프 세부 설정은 인자로 전달 → 선 색, 마크 종류, 선 두께 등
- 선 그래프 → plot() 함수
- 제목, y축 레이블 설정
- title() 함수, ylabel() 함수
- 그래프 출력
- show() 함수
선 그래프
- plot() 함수
- plt.plot(xarr, yarr, color, marker, linestyle)
- color
- r(red), g(green), b(blue), c(cyan), y(yellow), k(black), ...
- maker
- 원(o), 세모(^, v, <, >), 네모(s), 별(*), ...
- linestyle
- solid(-), dashed(--), dotted(:), dash-dot(-.)
- color
- plt.plot(xarr, yarr, format_string)
- format_string : 색상 + 마커 모양 + 라인스타일
- ex) ‘ro--’ = 빨간색, 원형 마커, 실선
- ex) ‘b^--’= 파란색, 세모 마커, 실선
막대 그래프
- bar() 함수
- plt.bar(xarr, yarr) → 막대 그래프 생성
- xticks() 함수
- plt.xticts(xarr, ticks) → x축 값에 눈금 표시
산포도(산점도) 그래프
- scatter() 함수
- 개별 데이터 포인트를 그리는 차트
- 산포도를 그릴 때는 각 데이터 포인트가 연결 안됨
파이 차트(pie chart)
- 범주별 구성 비율을 원형으로 표현한 그래프
- pie() 함수
- plt.pie(data, labels = data_labels, autopct = ‘%.1f%%’)
- data 배열과 data의 레이블 배열 전달
- 백분율 표시 형식 전달
- plt.pie(data, labels = data_labels, autopct = ‘%.1f%%’)
파이 차트 : 부채꼴 분리
- plt.pie(radio, labels=labels, autopct='%.1f%%’, startangle=260, counterclock=False, explode=exp)
- startangle = 첫번째 항목 시작 각도, counterclock = 반시계방향 여부
- explode = 부채꼴이 파이 차트 중심에서 벗어난 정도 è 실수 배열
파이 차트: 부채꼴 분리 - page 20 (stratangle=?? 로 지정하였을때 어떠한 결과가 나오는지 시험에 나올수 있음
파이 차트 : 그림자. 색상 지정
- plt.pie(radio, labels=labels, autopct='%.1f%%’, startangle=260, counterclock=False, explode=exp, shadow=True, colors=colors)
- 파이 차트 그림자 표시, 항목별 색상 배열 전달
히스토그램(histogram)
- 도수분포표를 막대 그래프로 나타낸 것
- 가로축은 계급**(구간),** 세로축은 도수**(횟수나 개수 등)**
- plt.hist(arr, bins=10) 함수 → bins = 구간 개수
정규분포를 보여줄때 자주 사용한다
bins 이해 해보자
히스토그램 : 막대 모양
- plt.hist**(x, label,** histtype = 'stepfilled'****)
- histtype : {‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}
다중 히스토그램
- plt.hist(x, bins, histtype, color= "blue", alpha=0.3);
- color : 히스토그램 색상 지정, alpha : 투명도(0=투명 `~ 1=불투명)
정규분포 난수 히스토그램
- 정규 분포 난수 배열 생성 함수
- np.random.randn(10000) → 정규분포 난수 배열, 평균 0, 표준편차 1
- == np.random.normal(0, 1, 10000)
균일분포, 정규분포, 표준정규분포
- np.random.randn(10000) è 정규분포(평균 0, 표준편차 1) 난수배열 생성
- np.random.standard_normal(10000) → 표준정규분포 난수배열 생성
- np.random.rand(10000) → 균일분포 (0~1.0) 난수배열 생성
rand 함수와 randn 의 함수의 차이 : rand 함수는 균일분포 만들때, randn은 정규분포 만들 때 사용
상자 차트(box plot)
- box-whisker plot이라고도 함
- boxplot() 함수
- plt.boxplot([배열 리스트]) è 각 배열에 대해 상자 차트 생성
- 전체 데이터로부터 얻어진 요약 수치를 사용해 그림
- 최소값
- 제1사분위수(Q1)
- 하위 25% 해당 값
- 제2사분위수(Q2)
- 중앙값
- 제3사분위수(Q3)
- 상위 25% 해당 값
- 최대값
실습
import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [67.0, 80.0, 257.0, 1686.0, 6505, 11865.3, 22105.3]
# 선 그래프, x축 years 값, y축 gdp 값
plt.plot(years, gdp, color='green', marker='o', linestyle='solid')
# 제목 설정
plt.title("GDP per capita")
# y축에 레이블 설정
plt.ylabel("dollars")
# png 이미지 파일로 저장
plt.savefig("gdp_per_capita.png", dpi=600)
plt.show()
최솟값 , 최대값에 해당되는 값을 자동으로 양 끝쪽(x, y) 균일한 간격으로 만들어준다

수학 함수 그래프
import matplotlib.pyplot as plt
x = [x for x in range(-10, 10)] # x값 설정, -10 ~ 10
y = [2*t for t in x] # y(=2*x) 값 설정
plt.plot(x, y, marker='o') # 선 그래프, 마커 = o(원)
plt.axis([-20, 20, -20, 20]) # x축, y축 범위 지정
# axis ([-20, 20, -20, 20])는 값의 최소값과 최대값으로 범위를 설정하지 않고
# x값 -20부터 20까지, y값 -20부터 20까지의 범위를 설정한다.
plt.show() # 그래프를 보여준다

난수 그래프
import numpy as np
x = [x for x in range(1000)] # x값 설정, 0~ 1000
y = np.random.rand(1000) * 6 - 3 # y 값 설정, [-3, 3 ] * 1000
plt.figure(figsize=(12, 4)) # 그래프 사이즈 설정 , 키워드 인
plt.title("Random Numbers") # 제목 설정
plt.plot(x, y, 'bo-') # 포맷팅
plt.axis([0, 1000, -3.5, 3.5]) # x축, y축 범위 지정
plt.show()

# plot은 가변인자 함수
# 포맷 스트링을 활용한 차트 장
# 1차 함수 1개 , 2차 함수 2개
import matplotlib.pyplot as plt
x = [x for x in range(-20, 20)] # -20 ~ 20 정수
y1 = [2*t for t in x] # y1 = 2 * x
y2 = [t**2 + 5 for t in x] # y2 = x**2 + 5
y3 = [-t**2 - 5 for t in x] # y3 = -x**2 - 5
# 빨강색 점선, 녹색 실선과 세모기호, 파랑색 별표와 점선
plt.plot(x, y1, 'r--', x, y2, 'g^-', x, y3, 'b*:')
plt.axis([-30, 30, -30, 30]) # x축, y축 범위 지정
plt.show()

범례
- 그래프에 범례 출력 è plt.legend() 함수 호출
- 범례 항목(레이블) 지정 è plt.plot(x, y, label=‘값’)
# 범례
x = [x for x in range(20)] # x = 0 ~ 20까지 정수 생성
y = [x**2 for x in range(20)] # y = x의 제곱값
z = [x**3 for x in range(20)] # z = x의 제곱값
plt.plot(x, x, label='linear') # 각 선에 대한 레이블 지정
plt.plot(x, y, label='quadratic') # label를 지정하여야지만 범례 사용 가능
plt.plot(x, z, label='qubic')
plt.xlabel('x label') # x축의 레이블
plt.ylabel('y label') # y축의 레이블
plt.legend() # 그래프의 레이블의 범례를 보여준다
plt.show()

사인그래프
# 사인 그래프
# 0~ 360도 사이의 사인 함수 그래프 출력
# 리스트 함축 사용
import math
x = [angle for angle in range(360)]
y = [math.sin(math.radians(angle)) for angle in range(360)]
plt.plot(x, y, label="SINE")
plt.title("SINE WAVE")
plt.legend()
plt.show()

코사인그래프
import math
import matplotlib.pyplot as plt
x = [angle for angle in range(360)] # 리스트 함축 사용
z = [math.cos(math.radians(angle)) for angle in range(360)]
y = [math.sin(math.radians(angle)) for angle in range(360)]
plt.plot(x, y, label="SINE") # label 지정
plt.plot(x, z, 'r-', label="COSINE") # label 지정
plt.title("SINE & COSINE WAVE")
plt.legend() # 범례 표시
plt.show()

막대 그래프
# 막대 그래프
import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [67.0, 80.0, 257.0, 1686.0, 6505, 11865.3, 22105.3]
plt.bar(range(len(years)), gdp, label="GDP") # 막대 그래프 생성
plt.title("GDP per capita income") # 제목 설정
plt.ylabel("dollars") # y축에 레이블을 붙인다.
plt.xticks(range(len(years)), years) # 눈금 레이블 표시
plt.legend() # 범례 표시
plt.show()

- bar() 함수
- plt.bar(xarr, yarr) è 막대 그래프 생성
- xticks() 함수
- plt.xticts(xarr, ticks) è x축 값에 눈금 표시
# 다중 막대 그래
import numpy as np
years = [1965, 1975, 1985, 1995, 2005, 2015]
ko = [130, 650, 2450, 11600, 17790, 27250]
jp = [890, 5120, 11500, 42130, 40560, 38780]
ch = [100, 200, 290, 540, 1760, 7940]
x = np.arange(len(years)) # x값 설정, 넘파이 배열
plt.bar(x + 0.0, ko, width=0.25, label="KO") # 막대 위치와 크기 변경
plt.bar(x + 0.3, jp, width=0.25, label="JP") # 막대 위치와 크기 변경
plt.bar(x + 0.6, ch, width=0.25, label="CH") # 막대 위치와 크기 변경
# (x + 0.?) 는 x축의 위치에서[0, 1, 2, 3, ....] 3개를 표시하기 위해 사용
# width는 막대의 너비를 조정한다 기본값은 1
plt.xticks(range(len(years)), years) # 눈금 표시
plt.legend() # 범례 표시
plt.show()

산포도 그래프
- scatter() 함수
- 개별 데이터 포인트를 그리는 차트
- 산포도를 그릴 때는 각 데이터 포인트가 연결 안됨
# 산포도(산점도) 그래프
# scatter() 함수
# 개별 데이터 포인트를 그리는 차트
# 산포도를 그릴 때는 각 데이터 포인터가 연결 안됨
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20, 50) # 크기 30인 넘파이 배열, 20 ~ 49
y = x + 2*np.random.randn(30) # x값에 [0, 2) 정규분포 난수 더하기
plt.scatter(x, y) # 산포도 생성
plt.title("Real Age vs Rhysical Age") # 제목 설정
plt.xlabel("Real Age") # x축 이름
plt.ylabel("Physical Age") # y축 이름
plt.savefig("kkk.png", dpi=600) # 그래프 지정
plt.show()

- plt.scatter(x, y, s=area, c=colors)
- s = 각 점의 크기 값을 나타내는 배열 전달
- c = 각 점의 색상 값을 나타내는 배열 전달
# 산포도(산점도) 색상, 크기 지정
# plt.scatter(x, y, s=area, c=color)
np.random.seed(0)
n = 50
x = np.random.rand(n) # 0~1 사이의 실수
y = np.random.rand(n)
area = (30 * np.random.rand(n)) ** 2 # 각 점의 크기
colors = np.random.rand(n) # 각 점의 색상
plt.scatter(x, y, s=area, c=colors) # 산포도 생성
plt.show()

파이차트
# 파이 차트
ratio = [34, 32, 16, 18]
labels = ['Apple', 'Banana', 'Melon', 'Grapes']
plt.pie(ratio, labels=labels, autopct='%.1f%%')
plt.show()

파이차트 부채꼴 분리
# 파이 차트 : 부채꼴 분리
ratio = [34, 32, 16, 18]
lables = ['Apple', 'Banana', 'Melon', 'Grapes']
exlode = [0, 0.10, 0, 0.10]
plt.pie(ratio, labels=lables, autopct='%.1f%%', startangle=260, counterclock=False, explode=exlode)
plt.show()

파이차트 그림자 색상 지정
ratio = [34, 32, 16, 18]
lables = ['Apple', 'Banana', 'Melon', 'Grapes']
exlode = [0.05, 0.05, 0.05, 0.05]
colors = ['silver', 'gold', 'whitesmoke', 'lightgray']
plt.pie(ratio, labels=lables, autopct='%.1f%%', startangle=260, counterclock=False, explode=exlode, shadow=True,
colors=colors)
plt.show()

import matplotlib.pyplot as plt
weight = [68, 81, 64, 56, 78, 74, 61, 77, 66, 68, 59, 71,
80, 59, 67, 81, 69,73, 69, 74, 70, 65]
plt.hist(weight, bins= 25)
plt.show()