Matplotlib에서 플롯 업데이트
Matplotlib에서 플롯을 다시 그리는 것은 어려울 수 있으며, 특히 추가 플롯을 추가하지 않고 업데이트해야 하는 경우 더욱 그렇습니다. 이 질문은 이 문제를 극복하는 방법을 탐구합니다.
문제는 플롯() 함수가 호출될 때마다 새 플롯을 생성하는 Figure 및 FigureCanvasTkAgg의 사용에서 발생합니다. 이로 인해 여러 플롯이 업데이트되지 않고 서로 겹쳐집니다.
이 문제를 해결하려면 다음 두 가지 옵션을 사용할 수 있습니다.
옵션 1: 지우기 및 다시 플롯
이것은 가장 간단한 옵션이지만 가장 느립니다. 새 데이터를 다시 플롯하기 전에 기존 플롯을 지우는 작업이 포함됩니다. 이는 그래프() 함수의 시작 부분에 graph1.clear() 및 graph2.clear()를 추가하여 수행할 수 있습니다. 이 접근 방식은 간단하지만 계산 집약적이며 실시간 업데이트에 적합하지 않을 수 있습니다.
옵션 2: 데이터 업데이트
보다 효율적인 접근 방식은 다음과 같습니다. 기존 플롯 객체의 데이터를 업데이트합니다. 이를 위해서는 새 선을 생성하는 대신 선의 ydata를 업데이트하도록 플롯() 함수를 수정해야 합니다. 이 방법은 훨씬 빠르지만 데이터 모양과 축 제한을 주의 깊게 처리해야 합니다.
예:
# Update the y-data of the existing line line1.set_ydata(np.sin(x + phase)) # Draw the updated plot fig.canvas.draw() # Flush any pending events fig.canvas.flush_events()
이 방법을 사용하면 지우고 다시 플롯할 필요 없이 플롯을 효율적으로 업데이트할 수 있습니다. 전체 그림. 특히 동적 데이터의 실시간 시각화에 유용합니다.
위 내용은 오버레이 없이 Matplotlib 플롯을 효율적으로 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!