Pandas와 Matplotlib를 활용하면 하나의 그래프에 여러 개의 선(line)을 손쉽게 그릴 수 있습니다. 이 글에서는 DataFrame에 저장된 여러 방정식 데이터를 피벗(pivot)하여 한 번에 시각화하는 방법을 단계별로 살펴보겠습니다.
구현 절차
- 그림 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
- Pandas의 DataFrame 클래스를 사용해 equation, x, y 세 개의 열을 가진 2차원 표 형태의 데이터를 만듭니다.
- pivot() 메서드를 사용해 인덱스는 x, 열은 equation, 값은 y가 되도록 DataFrame의 구조를 재배열합니다.
- plot() 메서드로 각 방정식에 해당하는 선들을 그립니다.
- 마지막으로 show() 메서드를 호출해 그림을 화면에 표시합니다.
예제 코드
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame([
["y=x^3", 0, 0],
["y=x^3", 1, 1],
["y=x^3", 2, 8],
["y=x^3", 3, 27],
["y=x^3", 4, 64],
["y=x^2", 0, 0],
["y=x^2", 1, 1],
["y=x^2", 2, 4],
["y=x^2", 3, 9],
["y=x^2", 4, 16],
["y=mx", 0, 0],
["y=mx", 1, 1],
["y=mx", 2, 2],
["y=mx", 3, 3],
["y=mx", 4, 3],
], columns=['equation', 'x', 'y'])
df = df.pivot(index='x', columns='equation', values='y')
df.plot()
plt.show()코드 설명
위 예제에서는 세 가지 방정식(y=x³, y=x², y=mx)에 대해 x 값이 0부터 4까지 변할 때의 y 값을 DataFrame으로 정의했습니다. 이후 pivot()을 호출하면 x 값이 행 인덱스로, 각 방정식이 개별 열로 배치되어 Matplotlib가 자동으로 방정식별로 다른 색상의 선을 그려줍니다.
실행 결과
코드를 실행하면 세 개의 곡선이 하나의 그래프에 함께 표시되며, 범례(legend)를 통해 각 선이 어떤 방정식에 해당하는지 쉽게 확인할 수 있습니다.
