본문 바로가기
여러 가지 이야기/에러 모음

AttributeError: 'Figure' object has no attribute 'subtitle'

by 김판다t 2023. 5. 19.

matplotlib 혹은 seaborn으로 두개의 그래프 (ax:캔버스)를 하나의 fig(액자)에 넣을 수 있다

 

import matplotlib.pyplot as plt
import pandas as pd

s1 = pd.Series([1, 2, 3, 4])
s2 = pd.Series([5, 4, 3, 2])

fig, ax = plt.subplots(1, 2, figsize=(6, 3), constrained_layout=True)
s1.plot(ax=ax[0])
s2.plot(ax=ax[1])

plt.show()

 

 

 

이 때 그래프 전체에 제목을 달고 싶다면 fig에 제목을 달면 된다. subtitle 함수로 fig에 제목을 달아보자

 

import matplotlib.pyplot as plt
import pandas as pd

s1 = pd.Series([1, 2, 3, 4])
s2 = pd.Series([5, 4, 3, 2])

fig, ax = plt.subplots(1, 2, figsize=(6, 3), constrained_layout=True)
s1.plot(ax=ax[0])
s2.plot(ax=ax[1])

fig.subtitle('set title of fig', fontsize=15, fontweight='bold') # 추가한 코드

plt.show()

 

AttributeError: 'Figure' object has no attribute 'subtitle'

 

 

결과는 위와 같은 에러가 난다. fig에 제목을 달아주는 함수는 suptitle인데 많이들 착각해서 벌어지는 에러이다

 

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.suptitle.html

 

 

아래와 같이 suptitle 함수를 사용하자

 

import matplotlib.pyplot as plt
import pandas as pd

s1 = pd.Series([1, 2, 3, 4])
s2 = pd.Series([5, 4, 3, 2])

fig, ax = plt.subplots(1, 2, figsize=(6, 3), constrained_layout=True)
s1.plot(ax=ax[0])
s2.plot(ax=ax[1])

fig.suptitle('set title of fig', fontsize=15, fontweight='bold') # suptitle을 사용하자

plt.show()

 

문제없이 제목이 생겼다

 

 

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas