#개념 정리
#패스트캠퍼스 강의 정리
matplotlib
import matplotlib.pyplot as plt
plt.rc('font', family='NanumBarunGothic')
plt.rcParams["figure.figsize"] = (12, 9)
1. 밑그림 그리기
1-1. 단일 그래프
# data 생성
data = np.arange(1, 100)
# plot
plt.plot(data)
# 그래프를 보여주는 코드
plt.show()

1-2. 다중 그래프
1개의 canvas 안에 다중 그래프 그리기
data = np.arange(1, 51)
data2 = np.arange(51, 101)
plt.plot(data)
plt.plot(data2)
plt.plot(data2+50)
plt.show()

-2개의 figure로 나누어서 다중 그래프 그리기
data = np.arange(100, 201)
plt.plot(data)
data2 = np.arange(200, 301)
plt.figure()
plt.plot(data2)
plt.show()

1-3. 여러개의 plot 그리기(subplot)
subplot(row, column, index)
data = np.arange(100, 201)
plt.subplot(1, 2, 1) # 콤마 생략 가능, plt.subplot(121)
plt.plot(data)
data2 = np.arange(200, 301)
plt.subplot(1,2,2) # 콤마 생략 가능, plt.subplot(122)
plt.plot(data2)
plt.show()

1-4. 여러개의 plot을 그리는 방법 (subplots)
plt.subplots(행의 갯수, 열의 갯수)
# data 생성
data = np.arange(1, 51)
# 밑 그림
fig, axes = plt.subplots(2, 3)
axes[0, 0].plot(data)
axes[0, 1].plot(data * data)
axes[0, 2].plot(data ** 3)
axes[1, 0].plot(data % 10)
axes[1, 1].plot(-data)
axes[1, 2].plot(data // 20)
plt.tight_layout()
plt.show()

2. 주요 스타일 옵션
2-2. 타이틀
plt.plot([1, 2, 3], [3, 6, 9])
plt.plot([1, 2, 3], [2, 4, 9])
# 타이틀 & font 설정
plt.title('이것은 타이틀입니다', fontsize=20
)
)
plt.show()

2-2. X, Y축 Label 설정
plt.plot([1, 2, 3], [3, 6, 9])
plt.plot([1, 2, 3], [2, 4, 9])
# 타이틀 & 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(0, 5)
plt.ylim(0.5, 10)
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()

'공부 기록 > Data Analysis' 카테고리의 다른 글
[Data/Python] 데이터분석 정리 - 7 (0) | 2022.03.26 |
---|---|
[Data/Python] 데이터분석 정리 - 5 (0) | 2022.03.22 |
[Data/Python] 데이터분석 정리 - 4 (0) | 2022.03.19 |
[Data/Python] 데이터분석 정리 - 3 (0) | 2022.03.18 |
[Data/Python] 데이터분석 정리 - 2 (0) | 2022.03.15 |