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

파이썬 Matplotlib pylab으로 하트 모양 그래프 그리는 방법

Python의 matplotlib 라이브러리(pylab/pyplot)를 활용하면 간단한 수학 공식만으로 아름다운 하트 모양을 그릴 수 있습니다. 이 글에서는 numpy와 pyplot을 이용해 하트 곡선을 생성하고 빨간색으로 채우는 방법을 단계별로 소개합니다.

하트 그리기 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • numpy를 사용하여 x, y1, y2 데이터 포인트를 생성합니다.
  • fill_between() 메서드를 사용해 (x, y1)과 (x, y2) 사이 영역을 빨간색으로 채웁니다.
  • text() 메서드를 사용해 (0, -1.0) 좌표에 텍스트를 배치합니다.
  • show() 메서드로 완성된 그림을 화면에 표시합니다.

하트 곡선의 수학적 원리

하트 모양은 두 개의 함수 조합으로 만들어집니다.

  • y1 = √(1 − (|x| − 1)²): 하트의 위쪽 둥근 부분을 담당하는 곡선입니다.
  • y2 = −3√(1 − (|x|/2)^0.5): 하트의 아래쪽 뾰족한 부분을 담당하는 곡선입니다.

x 값은 np.linspace(-2, 2, 1000)을 통해 -2부터 2까지 1000개의 균일한 간격으로 생성되며, 이를 통해 매끄러운 곡선을 얻을 수 있습니다.

전체 예제 코드

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.linspace(-2, 2, 1000)
y1 = np.sqrt(1 - (abs(x) - 1) ** 2)
y2 = -3 * np.sqrt(1 - (abs(x) / 2) ** 0.5)

plt.fill_between(x, y1, color='red')
plt.fill_between(x, y2, color='red')

plt.text(0, -1.0, 'Heart', fontsize=24, color='black',
horizontalalignment='center')

plt.show()

코드 설명

  • plt.rcParams 설정: 그림 크기를 7.50 × 3.50 인치로 지정하고, 자동 레이아웃 조정을 활성화해 요소들이 잘리지 않도록 합니다.
  • fill_between(x, y1, color='red'): 위쪽 곡선 아래 영역을 빨간색으로 채웁니다.
  • fill_between(x, y2, color='red'): 아래쪽 곡선 영역 역시 빨간색으로 채워 하나의 하트 형태를 완성합니다.
  • plt.text(): 하트 중앙 하단에 검은색 "Heart" 텍스트를 추가하고, horizontalalignment='center'로 가운데 정렬합니다.

실행 결과

위 코드를 실행하면 빨간색으로 채워진 하트 모양이 화면에 나타나며, 하트 안쪽에 "Heart"라는 텍스트가 표시됩니다. 색상이나 텍스트 내용, 폰트 크기 등을 변경해 다양한 스타일의 하트를 응용할 수 있습니다.