공부 기록/Data Analysis

[Data/Python] 데이터분석 정리 - 6

햇살아래 2022. 3. 23. 13:45

#개념 정리

#패스트캠퍼스 강의 정리

 

 

matplotlib

import matplotlib.pyplot as plt
 
plt.rc('font', family='NanumBarunGothic'
plt.rcParams["figure.figsize"] = (129)

 

 

1. 밑그림 그리기

1-1. 단일 그래프
 
# data 생성
data = np.arange(1100)
# plot
plt.plot(data)
# 그래프를 보여주는 코드
plt.show()

 

1-2. 다중 그래프

1개의 canvas 안에 다중 그래프 그리기

 

data = np.arange(151)
data2 = np.arange(51101)

plt.plot(data)
plt.plot(data2)
plt.plot(data2+50)

plt.show()

 

-2개의 figure로 나누어서 다중 그래프 그리기

 

data = np.arange(100201)
plt.plot(data)

data2 = np.arange(200301)
plt.figure()
plt.plot(data2)

plt.show()

 

1-3. 여러개의 plot 그리기(subplot)

subplot(row, column, index)
 
 
data = np.arange(100201)
plt.subplot(121)   # 콤마 생략 가능, plt.subplot(121)
plt.plot(data)

data2 = np.arange(200301)
plt.subplot(1,2,2)    # 콤마 생략 가능, plt.subplot(122)
plt.plot(data2)

plt.show()

 

1-4. 여러개의 plot을 그리는 방법 (subplots)

plt.subplots(행의 갯수, 열의 갯수)
 
 
# data 생성
data = np.arange(151)

# 밑 그림
fig, axes = plt.subplots(23)

axes[00].plot(data)
axes[01].plot(data * data)
axes[02].plot(data ** 3)
axes[10].plot(data % 10)
axes[11].plot(-data)
axes[12].plot(data // 20)

plt.tight_layout()
plt.show()

 

 

2. 주요 스타일 옵션

 

2-2. 타이틀

 

plt.plot([123], [369])
plt.plot([123], [249])
 
# 타이틀 & font 설정
plt.title('이것은 타이틀입니다', fontsize=20
)

plt.show()

 

2-2. X, Y축 Label 설정

 
plt.plot([123], [369])
plt.plot([123], [249])

# 타이틀 & font 설정
plt.title('Label 설정 예제입니다', fontsize=20)

# X축 & Y축 Label 설정
plt.xlabel('사람숫자', fontsize=20)
plt.ylabel('가족숫자', fontsize=20)

plt.show()

 

2-3. X, Y축 Tick 설정 (rotation)

Tick : X, Y축에 위치한 눈금

 

plt.plot(np.arange(10), np.arange(10)*2)
plt.plot(np.arange(10), np.arange(10)**2)
plt.plot(np.arange(10), np.log(np.arange(10)))

# 타이틀 & font 설정
plt.title('X, Y 틱을 조정합니다', fontsize=20)

# X축 & Y축 Label 설정
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20)

# X tick, Y tick 설정
plt.xticks(rotation=90)
plt.yticks(rotation=30)

plt.show()

 

2-4. 범례(Legend) 설정

 

plt.plot(np.arange(10), np.arange(10)*2)
plt.plot(np.arange(10), np.arange(10)**2)
plt.plot(np.arange(10), np.log(np.arange(10)))

# 타이틀 & font 설정
plt.title('범례 설정 예제입니다', fontsize=20)

# X축 & Y축 Label 설정
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20)

# X tick, Y tick 설정
plt.xticks(rotation=90)
plt.yticks(rotation=30)

# legend 설정
plt.legend({'10 * 2''10 ** 2''log'}, fontsize=15)

plt.show()

 

2-5. X와 Y의 한계점(Limit) 설정

 
plt.plot(np.arange(10), np.arange(10)*2)
plt.plot(np.arange(10), np.arange(10)**2)
plt.plot(np.arange(10), np.log(np.arange(10)))

# 타이틀 & font 설정
plt.title('이것은 타이틀 입니다', fontsize=20)

# X축 & Y축 Label 설정
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20)

# X tick, Y tick 설정
plt.xticks(rotation=90)
plt.yticks(rotation=30)

# legend 설정
plt.legend(['10 * 2''10 ** 2''log'], fontsize=15)

# x, y limit 설정
plt.xlim(05)
plt.ylim(0.510)

plt.show()

 

2-6. 스타일 세부 설정 - 마커, 라인, 컬러

 

세부 도규먼트 확인하기

 

marker의 종류

  • '.' point marker
  • ', ' pixel marker
  • 'o' circle marker
  • 'v' triangle_down marker
  • '^' triangle_up marker
  • '<' triangle_left marker
  • '>' triangle_right marker
  • '1' tri_down marker
  • '2' tri_up marker
  • '3' tri_left marker
  • '4' tri_right marker
  • 's ' square marker
  • 'p' pentagon marker
  • '*' star marker
  • 'h' hexagon1 marker
  • 'H' hexagon2 marker
  • '+' plus marker
  • 'x' x marker
  • 'D' diamond marker
  • 'd' thin_diamond marker
  • '|' vline marker
  • '_' hline marker

 

plt.plot(np.arange(10), np.arange(10)*2, marker='o', markersize=5)
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker='v', markersize=10)
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker='+', markersize=15)
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker='*', markersize=20)
 
...
plt.show()

 

line의 종류

  • '-' solid line style
  • '--' dashed line style
  • '-.' dash-dot line style
  • ':' dotted line style

 

plt.plot(np.arange(10), np.arange(10)*2, marker='o', markersize=5, linestyle='')
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker='v', markersize=10, linestyle='--')
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker='+', markersize=15, linestyle='-.')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker='*', markersize=20, linestyle=':')

...

plt.show()

 

color의 종류

  • 'b' blue
  • 'g' green
  • 'r' red
  • 'c' cyan
  • 'm' magenta
  • 'y' yellow
  • 'k' black
  • 'w' white

 

plt.plot(np.arange(10), np.arange(10)*2, marker='o', markersize=5, linestyle='', color='b')
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker='v', markersize=10, linestyle='--', color='c')
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker='+', markersize=15, linestyle='-.', color='y')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker='*', markersize=20, linestyle=':', color='r')

...

plt.show()

 

투명도

 

plt.plot(np.arange(10), np.arange(10)*2, color='b', alpha=0.1)
plt.plot(np.arange(10), np.arange(10)*2 - 10, color='b', alpha=0.3)
plt.plot(np.arange(10), np.arange(10)*2 - 20, color='b', alpha=0.6)
plt.plot(np.arange(10), np.arange(10)*2 - 30, color='b', alpha=1.0)

...

plt.show()

 

2-7. 그리드 설정

 

plt.plot(np.arange(10), np.arange(10)*2, marker='o', linestyle='', color='b')
plt.plot(np.arange(10), np.arange(10)*2 - 10, marker='v', linestyle='--', color='c')
plt.plot(np.arange(10), np.arange(10)*2 - 20, marker='+', linestyle='-.', color='y')
plt.plot(np.arange(10), np.arange(10)*2 - 30, marker='*', linestyle=':', color='r')

# 타이틀 & font 설정
plt.title('그리드 설정 예제', fontsize=20)

# X축 & Y축 Label 설정
plt.xlabel('X축', fontsize=20)
plt.ylabel('Y축', fontsize=20)

# X tick, Y tick 설정
plt.xticks(rotation=90)
plt.yticks(rotation=30)

# grid 옵션 추가
plt.grid()

#이미지 저장 - sagefig
plt.savefig('my_graph.png', dpi=300)

plt.show()