Matplotlib의 fivethirtyeight 스타일시트는 유명 데이터 저널리즘 사이트 FiveThirtyEight의 시각화 스타일을 재현한 것으로, 굵은 선, 큰 글씨체, 회색 배경과 격자선이 특징입니다. 이 스타일시트를 적용해 곡선을 그리려면 아래 단계를 따르면 됩니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- plt.style.use() 메서드에 'fivethirtyeight'을 지정하여 스타일을 적용합니다.
- numpy를 사용해 x 데이터 포인트를 생성합니다.
- subplots() 메서드로 그림과 서브플롯(축)을 생성합니다.
- plot() 메서드로 세 개의 곡선을 그립니다.
- set_title()로 플롯 제목을 설정합니다.
- show() 메서드로 그림을 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.style.use('fivethirtyeight')
x = np.linspace(0, 10)
fig, ax = plt.subplots()
ax.plot(x, np.sin(x) + x + np.random.randn(50))
ax.plot(x, np.sin(x) + 0.5 * x + np.random.randn(50))
ax.plot(x, np.sin(x) + 2 * x + np.random.randn(50))
ax.set_title("'fivethirtyeight' style sheet")
plt.show()
코드 설명
위 코드는 np.linspace(0, 10)으로 0부터 10 사이에 균등하게 분포된 50개의 x 값을 생성합니다. 이후 사인(sin) 함수에 서로 다른 기울기 항(x, 0.5x, 2x)과 무작위 노이즈(np.random.randn)를 더한 세 개의 곡선을 하나의 축 위에 겹쳐 그립니다. 스타일시트가 적용되면 배경색, 격자선, 선 두께, 폰트 등이 fivethirtyeight 스타일로 자동 렌더링되어 별도의 스타일 지정 없이도 완성도 높은 차트를 얻을 수 있습니다.
실행 결과
