Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib fivethirtyeight 스타일시트로 곡선 그리기

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 스타일로 자동 렌더링되어 별도의 스타일 지정 없이도 완성도 높은 차트를 얻을 수 있습니다.

실행 결과

Matplotlib fivethirtyeight 스타일시트로 곡선 그리기