본문 바로가기

개념 정리/Python

파이썬 데이터 분석_시각화

csv.reader() : csv 파일에서 데이터 읽어오기

csv.writer() : csv 파일에 데이터 저장

 

데이터는 완전무결한 것이 아님

 

헤더: 여러 값들의 의미를 표시한 행 (자료구조- 사용설명서같은 것)

-> 각 데이터가 어떤 의미 갖는지 알 수 있음.

next() :  데이터의 첫 번째 행을 읽어오고, 데이터 탐색 위치를 다음 행으로 이동시킴. 헤더 별도 지정 시 사용!

 

 

[그래프]

matplotlib.pyplot : matplotlib 라이브러리 안의 pyplot 모듈

plot() : 직선/꺾은선 그래프

hist() : 히스토그램. 막대그래프

[기본 그래프 그리는 방법]

1. import matplotlib.pyplot as plt : 라이브러리 import

2. plt.plot([x축데이터], [y축데이터]) : plot()함수에 데이터 입력

plot()안에 리스트 1 개: y축 값으로 입력됨.

plot()안에 리스트 2 개: 첫번째 리스트는 x축 값, 두번째 리스트는 y축 값

3. plt.show() :  그래프 결과 보여줌

 

 

title() : 그래프 위에 제목 넣기 (영어로)

 

제목을 한글로 넣었을 때 글자가 깨지는 문제를 해결하기 위해, 한글 입력 시 title() 위에 아래 코드 작성

plt.rc('font', family = 'Malgun Gothic')     # 맑은고딕체 설정

 

'-' 문자의 깨짐 방지 위해 아래 코드 작성

plt.rcParams['axes.unicode_minus'] = False 

 

legend() : 레이블 값을 범례로 나타내는 함수.

레이블 값은 plot([1,2,3,4], label='mark1') 처럼 label=' '으로 plot()에 넣어줌.

 

legend(loc=5) 처럼 써서 범례의 위치 지정 가능. 0~10까지 넣을 수 있음

위치↘

2 9 1
6 10 5, 7
3 8 4

 

- 그래프 색상 변경 :

plt.plot([1,2,3,4], color = 'skyblue', label = 'skyblue')

또는

plt.plot([1,2,3,4], 'skyblue')

기본 색 약자 표기 가능:

r - red / g - green / b - blue / k - black / y- yellow

색상 이름 확인 : http://bit.ly/2U5toVX

 

- 그래프 선 모양 변경:

plt.plot([1,2,3,4], 'skyblue', linestyle = '--', label = 'dashed')

색상과 선 모양 동시 작성 : <색상><선 모양>

plt.plot([1,2,3,4], 'r--', label = 'dashed')

 

- 마커 모양 변경:

plt.plot([1,2,3,4], 'r.', label = circle)     # 빨간색 원형 마커

색상, 마커모양, 선 모양 동시 작성 : <색상><마커 모양><선 모양>

plt.plot([1,2,3,4], 'r^--', label = tryangle)     # 빨간색 삼각형 마커, 선 모양은 --

 

- 그래프 크기 조절:

plt.figure(figsize = (가로길이, 세로길이))      # 단위는 인치

plt.figure(figsize = (가로길이, 세로길이), dpi=300)     # dpi는 그래프 그림 자체의 크기

 

 

hist() 히스토그램

hist(리스트, bins=100, color = 'r', label = 'abc')

bins는 가로축의 구간 개수

 

 

 boxplot() : 상자그림

데이터의 최댓값, 최솟값, 1/4, 1/2, 3/4에 위치한 값을 상자 형태로 보여주는 그래프.

 

다른 값들에 비해 너무 크거나 작은 값은 동그라미로 표현됨. (이상치)

 

 

plt.style.use('ggplot')   :  그래프 스타일 지정. ()안에 원하는 스타일을 작성하면 됨.

print(plt.style.available) 코드를 작성하면 적용 가능한 스타일의 이름들 확인 가능

 

plt.boxplot(result, showfliers=False)   :   아웃라이어(이상치)값 생략

 

 

 bar() : 수직 막대그래프

bar(막대를 표시할 위치(x축), 막대 높이(y축))

 barh() : 수평 막대그래프

barh(막대를 표시할 위치(y축), 막대 높이(x축))

# 막대를 표시할 위치는 range로 표현할 수 있음. ex) bar(range(101), data)

 

 

 xticks() :  눈금 레이블 지정

xticks([x축 위치], [레이블], rotation = 90 )       # rotation은 레이블 텍스트 회전하는 것(생략 가능)

 

 

 pie() : 원그래프. 파이차트

pie([데이터1, 데이터2, ...])      # 데이터 크기 따라 원그래프 비율 결정

 

- 레이블 작성:

pie(데이터, labels = 레이블)      # 레이블은 데이터 순서에 맞게 리스트에 넣어서 할당 

 

- 값 표시 형태 설정:

pie(데이터, labels = 레이블, autopct = '%.1f%%')      # autopct는 값을 표시할 형태. '%.1f%%'는 실수형으로 소숫점 첫번째까지 표현하겠다는 뜻

 

- 색 설정 & 특정 비율 돌출 표현:

pie(데이터, labels = 레이블, autopct = '%.1f%%', colors = 색, explode = (0, 0, 0.1, 0))

# 색은 데이터 순서에 맞게 리스트에 넣어 각 레이블마다 색상 변경 가능. (color = ['black', 'pink', 'skyblue', 'blue'])

# explode는 특정 비율을 돌출표현하는 것. 0은 돌출 x라는 뜻

 

- 시작 각도 설정:

pie(데이터, labels = 레이블, autopct = '%.1f%%', colors = 색, explode = (0, 0, 0.1, 0), startangle = 90)

# startangle은 파이차트 기본 시작 지점(3시방향)에서 반시계방향으로 설정 각도만큼 이동

 

plt.axis('equal') : 원그래프를 동그란 원으로 표현하는 방법

 

 

 scatter() : 산점도, 버블차트

scatter([x축 데이터], [y축 데이터])

- 점의 사이즈 조절:

scatter(x축데이터, y축데이터, s = [사이즈])

- 점 색 설정:

scatter(x축데이터, y축데이터, s = [사이즈], c = [색상])      # 색상을 직접 리스트에 넣어 지정해주는 방법

scatter(x축데이터, y축데이터, s = [사이즈], c = range(색 개수))     # range()에 넣은 색 개수만큼 각각 서로 다른 색으로 표현

plt.colorbar() : 컬러바 추가

- 컬러바에 사용될 색의 종류 지정:

scatter(x축데이터, y축데이터, s = [사이즈], c = range(색 개수), cmap = 'jet')    # jet는 무지개색

컬러맵 종류 확인: https://matplotlib.org/stable/tutorials/colors/colormaps.html

 

Choosing Colormaps in Matplotlib — Matplotlib 3.4.3 documentation

Note Click here to download the full example code Choosing Colormaps in Matplotlib Matplotlib has a number of built-in colormaps accessible via matplotlib.cm.get_cmap. There are also external libraries like [palettable] and [colorcet] that have many extra

matplotlib.org

- 점의 불투명도 조절:

scatter(x축데이터, y축데이터, s = [사이즈], c = range(색 개수), cmap = 'jet', alpha = 0.7)    # alpha 범위는 0~1. (0에 가까울 수록 투명)

 

 

 

그래프를 이미지로 저장: savefig()

plt.savefig('파일이름' + '형식')       # savefig('파일이름'+'.png') 같은 형태로 이미지 저장. 시각화 정보를 한 번에 저장할 때 편함. 경로지정도 가능. savefig('C:\pythondata\foldername\\' + 파일이름 + '.png') 처럼 파일 이름 앞에 경로 지정해주면 됨.

 

 

 map() : 일괄적으로 데이터에 특정함수 적용. 첫번째 인수에는 적용할 함수, 두번째 인수에는 함수를 적용할 데이터

# 예를들어 map(int, data)는 data라는 데이터에 일괄적으로 int형을 적용시킴

 

 

 

 

▽  plot

plot

▽  hist  /  pie

hist / pie

▽  bar /  barh

bar / barh

▽  boxplot  /  scatter

boxplot / scatter

 

 

 

result = []
for i in range(31):
    result.append([])     # 리스트 내에 31개 리스트 생성