![sshhhh](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
통계분석시각화 : matplotlibPYTHON/데이터분석2023. 9. 15. 17:14
Table of Contents
#matplotlib
Matplotlib — Visualization with Python
seaborn seaborn is a high level interface for drawing statistical graphics with Matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets. statistical data visualization Cartopy Cartopy is a Python package des
matplotlib.org
파이썬에서 데이터를 효과적으로 시각화하기위해 만든 라이브러리
매트랩의 시각화 기능을 모델링해서 만들어졌다.
2차원 선 그래프(plot), 산점도, 막대그래프, 히스토그램, 파이그래프를 그릴 수 있다.
#선 그래프(plot)
plt.plot( [x, ] y [ , fmt] ) : x,y축 좌표의 값 fmt가 없다면 기본형식으로 그래프를 그린다.
plt.plot(data) : x,y값 전달해서 도면추가
plt.show() : 시각화
import numpy as np
data = np.arange(10) #y축 데이터
data
plt.plot(data) #도면 추가, x축 데이터는 0부터 y의 개수만큼 1씩 증가하는 값으로 자동할당
plt.show() #시각화
#y값만 인자로 전달, x축 데이터:0부터 1씩 증가하는 값으로 자동 할당
plt.plot([1, 4, 7, 9, 12, 15])
plt.show()
plt.plot([1, 4, 7, 9, 12, 15]) #y값
plt.title("plt.plot([1, 4, 7, 9, 12, 15])") #제목
plt.show() #화면에 시각화
plt.plot([1, 2, 3, 4, 5, 7] ,[1, 2, 10, 6, 12, 15]) #x,y 값 전달
plt.title("plt.plot([1, 2, 3, 4, 5, 7] ,[1, 2, 10, 6, 12, 15])")
plt.show()
#마커지정
plt.plot([1, 2, 3, 4, 5, 7] ,[1, 2, 10, 6, 12, 15], '.')
"""
1. 'o')
2. 'o-'
3. 'o:'
각각 다른 모양으로 생성된다.
"""
데이터 두개 이상 전달
#데이터 두 개 이상 전달 (마커사용)
plt.plot([1, 2, 3, 4, 5, 7] ,[1, 2, 10, 6, 12, 15], 'bo' #파란 원
,[1, 2, 3, 4, 5, 7] ,[8, 9, 10, 15, 11, 10], 'r^' ) #빨간 세모
plt.title("plt.plot([1, 2, 3, 4, 5, 7] ,[1, 2, 10, 6, 12, 15], 'bo',[1, 2, 3, 4, 5, 7] ,[8, 9, 10, 15, 11, 10], 'r^')")
plt.show()
축 범위,이름 지정
plt.plot([1, 2, 3, 4, 5] ,[90, 80, 85, 77, 97], 'bo')
plt.plot([1, 2, 3, 4, 5] ,[95, 86, 75, 90, 67], 'r^' )
plt.axis([0,6,0,100]) #x축(0,6) y축(0,100)
plt.title("scores")
plt.xlabel('number') #x축 이름
plt.ylabel('score') #y축 이름
plt.show()
#sub 도표
plt.subplot(221) #2X2 중 1
plt.title("221")
plt.plot([1,2,3,4], 'ro-')
plt.subplot(222) #
plt.title("222")
plt.plot([4,3,2,1], 'b.:')
plt.subplot(223)
plt.title("223")
plt.plot([1,3,2,4], 'c^-.') #자홍색 삼각형위쪽 실선
plt.subplot(224)
plt.title("224")
plt.plot([2,4,1,3], 'k.--')
plt.show()
#막대그래프
항목의 수량이 많고 적음을 한눈에 알아본다. 여러 항목의 데이터를 서로 비교할때 주로 이용
plt.bar( x ,height) : x(x축)
names = ['aa', 'bb', 'ccc']
scores = [80, 90, 85]
plt.bar(names, scores) x축, y값표시
plt.xlabel('name')
plt.ylabel('score')
plt.title('name-score bar')
plt.show()
years=['2018', '2019', '2020', '2021']
incomes=[5000, 5600, 4300, 7800]
#수직그래프
plt.bar(years,incomes)
plt.show()
#수평그래프
plt.barh(years, incomes)
plt.show()
색상지정
colors=['red' , 'green' , 'blue']
names=['a','b','c']
income=[100,200,300]
plt.bar(names,income,color = colors)
plt.title("color")
plt.show()
income1,2 두개 출력되지 않는다.
names = ['a', 'b', 'c']
income1=[100, 160, 130]
income2=[200, 230, 260]
plt.bar(names,income1)
plt.bar(names,income2)
plt.show()
bottom 옵션 -> income1,2 같이 시각화
names = ['a', 'b', 'c']
income1=[100, 160, 130]
income2=[200, 230, 260]
plt.bar(names,income1)
plt.bar(names,income2, bottom=income1)
plt.show()
#xtick을 개발자가 정하기
seqno = [1,2,3,4,5,6,7,8,9]
scores=[90, 50, 70, 86, 90, 100, 88, 74, 65]
num_str=[str(no) for no in seqno]
plt.bar(num_str, scores)
plt.xlabel("no")
plt.xlabel("score")
plt.title("no-score")
plt.show()
#파이그래프
전체 데이터에서 각 항목이 차지한 비율을 비교할 때 이용
locales = {'a', 'b', 'c', 'd', 'e'}
incomes = [2300, 1200, 1800, 800, 400]
plt.pie(incomes, labels=locales)
plt.title("incomes")
plt.show()
locales = {'a', 'b', 'c', 'd', 'e'}
incomes = [2300, 1200, 1800, 800, 400]
exs=[0, 0.1, 0, 0, 0]
plt.pie(incomes,labels=locales,explode=exs, autopct="%.2f", pctdistance=0.8, shadow=True)
#돌출, 퍼센트, 그림자 표시
plt.title("incomes")
plt.show()
#마커지정 약어
컬러지정을 위한 약어
b | 파 |
g | 녹 |
r | 빨 |
c | 청녹 |
m | 자홍 |
y | 노 |
k | 검 |
w | 흰 |
선 스타일 지정을 위한 약어
- | 실선 |
-- | 파선 ---- |
: | 점선 |
-. | 파선 점선 혼합 |
마커지정을 위한 약어
ㅇ | 원 |
^,v,<,> | 삼각형 |
s | 사각형 |
p | 오각형 |
h ,H | 육각형 |
* | 별 |
+ | 더하기 |
x , X | x , 채워진x |
D, d | 다이아몬드 |
'PYTHON > 데이터분석' 카테고리의 다른 글
통계분석시각화 - 타이타닉2 (0) | 2023.09.15 |
---|---|
통계분석시각화 - 타이타닉1 (0) | 2023.09.15 |
통계분석시각화-pandas (0) | 2023.09.15 |
통계분석시각화 : Numpy -연산 (0) | 2023.09.15 |
통계분석시각화 : Numpy -소개 (0) | 2023.09.15 |