개요
Matplotlib에서 두 직선의 교차점을 계산하고, 그 지점을 지나는 수평선과 수직선을 함께 시각화하려면 아래 단계를 따르면 됩니다. 핵심 원리는 두 직선의 방정식 y = mx + c에서 기울기(m)와 y절편(c)을 이용해 연립방정식을 풀어 교차 좌표(xi, yi)를 구하는 것입니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 조정합니다.
- 기울기 (m1, m2)와 절편 (c1, c2) 값을 초기화하여 두 직선을 정의합니다.
- numpy를 사용해 x축 데이터 포인트를 생성합니다.
- plot() 메서드로 두 직선을 각각 다른 색상으로 그립니다.
- 교차점 공식 xi = (c1 - c2) / (m2 - m1), yi = m1 * xi + c1을 이용해 교차점 좌표를 계산합니다.
- axvline()과 axhline()으로 점선(dashed) 스타일의 수직선과 수평선을 그어 교차 위치를 강조합니다.
- scatter()로 교차점(xi, yi)에 마커를 표시합니다.
- show() 메서드로 최종 그림을 화면에 출력합니다.
예제 코드
import matplotlib.pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 두 직선의 기울기와 절편 정의 m1, c1 = 0.1, 2.0 m2, c2 = 2.0, -3.0 # x 데이터 생성 x = np.linspace(-10, 10, 500) # 두 직선 플롯 plt.plot(x, x * m1 + c1, 'red') plt.plot(x, x * m2 + c2, 'green') plt.xlim(-2, 8) plt.ylim(-2, 8) # 교차점 계산 xi = (c1 - c2) / (m2 - m1) yi = m1 * xi + c1 # 교차점을 지나는 수직선과 수평선 (점선 스타일) plt.axvline(x=xi, color='gray', linestyle='--') plt.axhline(y=yi, color='gray', linestyle='--') # 교차점 마커 표시 plt.scatter(xi, yi, color='black') plt.show()
실행 결과
코드를 실행하면 빨간색과 초록색 두 직선이 그려지고, 두 직선이 만나는 지점에 회색 점선의 수직선과 수평선이 교차하며 검은색 마커가 표시됩니다. 이 방식은 두 데이터 추세선의 만나는 지점을 분석할 때 유용하게 활용할 수 있습니다.