Matplotlib | legend 배치하기, plt.subplots() 이유

소리·2023년 10월 14일
0

legend() 배치하기

  • legend : 범례

위치를 지정할 수 있는데
1) supplot 안에서 이동하는 경우
2) 그래프 밖에 배치하는 방법이 2가지 있다.

1) 내부

plt.legend(loc = 'location')

#location 위치에는 'upper right', 'center left', 'lower center' 등이 들어갈 수 있으며, 코드(숫자)로도 입력할 수 있다. default는 best

※ 입력코드 출처

2) 외부

loc와 함께 위치를 지정하는 또다른 방법인데, default가 axes.bbox

bbox_to_anchor = (x, y, width, height) #2개 또는 4개 부동 소수점

예)
loc = 'lower right', bbox_to_anchor = (0.5, 0.5)
# legend의 오른쪽 아래가 해당 위치의 끝에 위치하도록 설정

#(1,1) 이 그래스 오른쪽 맨위 꼭짓점
1.5도 가능했던 것 같은데,,!

fig, ax = plt.subplots() 존재 이유

  • fig : 그래프가 담기는 프레임 / 실제로 글씨를 쓸 순 없다 / 액자역할
  • ax : 실제로 그래프가 그려진 캔버스

fig 안에 여러 개의 ax(캔버스)가 들어갈 수 있다.

fig는 왜 만들고 언제 활용할까?

하나의 figure를 저장할 때 fig 변수를 사용해 savefig 함수로 png, jpg, svg(이름에 .확장자를 붙여서 설정)하고 quality나 dpi 등을 더 상세히 설정할 수 있다.

안 그려도 괜찮던데?

figure 설정이 자동으로 되어 건너뛸 수 있는데, 여러 그래프를 그릴 때, 특정 위치의 ax를 불러오고 싶을 때 좌표를 일일이 입력할 필요 없이 인덱스로 할 수 있어 양이 많을 수록 용이하다.

fig랑 ax는 따로 쓸 수 있나?

fig, ax = plt.subplots()가 보편적으로 많이 쓰일 것이다.

같은 결과인데, 둘이 따로 쓰는 방법은

#첫 번째 방법
fig, ax = plt.subplots(2, 1)
plt.show()

#두 번째 방법
fig = plt.figure()

ax1 = fig.add_subplot(2, 1, 1) #2행 1열의 1번째
ax2 = fig.add_subplot(2, 1, 2) #2행 1열의 2번째
plt.show()

이해하는데 도움을 많이 준 글

그래프에 글자를 넣는 방법

#좌표 설정이 중요함
for  n in range(5):
	plt.text(
    	df['A'][n] * 1.02,
        df['B'][n] * 0.98,
        df.index[n],
        fontsize = 15
    )

scatter plot 컬럼별 색깔 다르게!

from matplotlib.colors import ListedColormap

color_step = []
my_camp = ListColormap(color_step)
profile
데이터로 경로를 탐색합니다.

0개의 댓글