inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

릿지(Ridge) 회귀의 이해

선생님, 질문이 있습니다.

해결된 질문

213

celestial_

작성한 질문수 72

0

선생님, 저 fig,axs = plt.subplots(figsize=(18,6),nrows=1,ncols=5)

이 신택스에 대해 질문이 있습니다.

제가 미리 구글링을 통해 알아본 결과

matplotlib.pyplot에서는 원래 figure()라는 어떤 그림판으로 이해될 수 있는 객체를 만들고,
ax1,ax2,ax3는 예를 들어 그 만들어진 fig 객체에 대해

fig.add_subplot(2,2,1) # 2*2 행렬에 첫번째 부분에 그래프를 그려라. 

이 과정을 전부 축약시켜서 fig,axs = plt.subplot()이렇게 

나타낸다고 이해했는데 , 제가 이해한 바가 맞나요?

그러니까, fig는 어떤 그림판 / axs는 그림판의 위치에 그려질 그래프(x,y축만 나타낸) 그림

이렇게요.

 

coeff = coeff.sort_values(ascending=False)

    axs[pos].set_title(colname)

    axs[pos].set_xlim(-3,6)

    sns.barplot(x=coeff.values,y=coeff.index,ax=axs[pos])

그렇게 된 결과 

axs의 pos위치에다가, colname이라는 제목과 xlim이 지정된 x,y축이 있는 좌표가 만들어지면

이제 그 안에 barplot이라는 막대 그래프를 만들어준다. 라는 것까지는 이해가 되었습니다.

그런데 barplot 안에서 또다시 저 ax 매개변수가 의미하는 바가 무엇인지 궁금합니다.

그리고 xlim이 어떠한 역할을 하는지도 궁금합니다. 

 

 

 

python 통계 머신러닝 배워볼래요?

답변 1

0

권 철민

안녕하십니까, 

matplotlib에서 그림을 그릴 때 중요한 배경 component는 figure와 ax가 있습니다. figure는 전반적인 matplotlib의 기반 component로 생각하시면되고, ax 상에서 그림을 그리게 됩니다. 

만약에 여러개의 그래프를 한번에 그리게 될 때 하나의 figure에서 여러개의 ax 들을 이용하여 그림을 그리게 됩니다. 이때 figure에서는 여러개의 그래프에 한꺼번에 적용되는 요소들을 관리할 수 있습니다. ax에서는 개별 그래프에 들어가는 요소들을 관리할 수 있습니다.  

보통 여러개의 그래프를 그릴 때 matplotlib에서 자주 사용하는 API는 plt.subplots() 입니다.

아래와 같이

fig,axs = plt.subplots(figsize=(18,6),nrows=1,ncols=5)를 사용하면

1개(당연히 figure는 1개)의 fig와 1개의 행과  5개의 열을 가진 ax를(즉 5개의 ax) 반환하게 됩니다. 여기서 인자로 figsize=(18, 6)을 주게 되면 figure의 크기가 18x6 사이즈 만큼 잡히고, 이 18x6개 위에서 5개의 ax를 만들게 됩니다.

axs는 배열로 5개를 가지게 됩니다. 즉 axs[0], axs[1],,,, axs[4] 와 같이 5개를 가지고 여기 5개의 axs위에서 5개의 그래프를 그리게 됩니다. 

개별 그래프의 요소들은 axs의 개별 배열값을 이용하여 적용 할 수가 있습니다. 

만약 pos=0 이라면 첫번째 axs 즉 axs[0] 그래프에서 제목명을 아래와 같이 적용할 수 있습니다. axs[pos].set_title(colname)

마찬가지로 axs[0]에서 x축의 값을 아래와 같이 적용할 수 있습니다. set_xlim()은 x축값의 최소, 최대 범위값을 정해 줄 수 있습니다.

axs[pos].set_xlim(-3,6)

또한 seaborn상에서  plt.subplots()로 여러개의 그래프를 그릴 때에는 그림을 그릴 해당 ax의 배열 값을 명확히 아래와 같이 명확히 지정해 줘야 합니다. 

sns.barplot(x=coeff.values,y=coeff.index,ax=axs[pos])

 

감사합니다. 

 

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

50

2

안녕하세요 열심히 수강중인 학생입니다

0

86

2

정수 인덱싱

0

86

2

넘파이 오류

0

108

2

11강 numpy의 axis 축 질문 드립니다.

0

106

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

93

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

76

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

83

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

73

2

5강 강의 오류가 있어요.

0

90

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

81

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

75

3

파이썬 다운그레이 후 사이킷런 재설치

0

128

2

좋은 강의 감사합니다.

0

79

2

scoring 함수 음수값

0

72

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

108

2

분류 평가 정확도 예측

0

87

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

114

1

카카오톡 채널 있나요

0

118

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

193

2

pca 스케일링 관련하여 질문드립니다.

0

109

2

주피터 대신 구글 코랩

0

184

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

155

2

실루엣 스코어..

0

91

2