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

Matplotlib에서 특정 선이나 곡선을 제거하는 방법

Matplotlib에서 특정 선이나 곡선 제거하기

Matplotlib에서 이미 그린 선(line)이나 곡선을 화면에서 삭제하고 싶다면, 해당 Line2D 객체를 가져온 뒤 remove() 메서드를 호출하면 됩니다. 다음 단계를 따라 해보겠습니다.

  • 그림(figure) 크기를 설정하고, 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
  • plot() 메서드를 사용하여 line1line2 두 개의 선을 그립니다.
  • 두 번째 선 객체를 리스트에서 꺼낸(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() 메서드를 사용하는 것이 가장 간단하고 안전한 방법입니다.