Matplotlib에서 특정 선이나 곡선 제거하기
Matplotlib에서 이미 그린 선(line)이나 곡선을 화면에서 삭제하고 싶다면, 해당 Line2D 객체를 가져온 뒤 remove() 메서드를 호출하면 됩니다. 다음 단계를 따라 해보겠습니다.
- 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
- plot() 메서드를 사용하여 line1과 line2 두 개의 선을 그립니다.
- 두 번째 선 객체를 리스트에서 꺼낸(pop) 후 제거(remove)합니다.
- 결과를 화면에 표시하려면 show() 메서드를 사용합니다.
예제 코드
from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True line_1 = plt.plot([1, 2, 3]) line_2 = plt.plot([2, 4, 6]) line = line_2.pop(0) line.remove() plt.show()
코드 설명
plt.plot()은 그려진 선에 대한 Line2D 객체를 담은 리스트를 반환합니다. 이 성질을 활용하면 특정 선을 쉽게 삭제할 수 있습니다.
plt.plot([1, 2, 3]): 첫 번째 선을 그리고, 해당 선 객체가 담긴 리스트를 반환합니다.line_2.pop(0): 두 번째 선의Line2D객체를 리스트에서 꺼냅니다.line.remove(): 해당 선을 축(axes)에서 완전히 제거하여 더 이상 화면에 나타나지 않게 합니다.
실행 결과
위 코드를 실행하면 기울기가 2인 두 번째 선은 제거되고, 첫 번째 선만 그래프에 표시되는 것을 확인할 수 있습니다.
참고로 ax.lines에서 직접 요소를 삭제하거나, set_data()로 빈 데이터를 설정하는 방법도 있지만, Line2D 객체의 remove() 메서드를 사용하는 것이 가장 간단하고 안전한 방법입니다.