>백엔드 개발 >파이썬 튜토리얼 >Matplotlib 시각화에서 주석이 겹치는 것을 방지하려면 어떻게 해야 합니까?

Matplotlib 시각화에서 주석이 겹치는 것을 방지하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-30 09:31:27936검색

How can I prevent overlapping annotations in Matplotlib visualizations?

Matplotlib의 주석 중복

Matplotlib 시각화에서는 종종 주석 중복 문제가 발생하여 그래프가 복잡해지고 해석하기 어려워집니다. 이 문서에서는 이 문제를 해결하기 위한 포괄적인 솔루션을 제공합니다.

The Herausforderung

여러 주석이 동일한 화면 공간을 공유하여 시각적 혼란을 야기할 때 겹치는 주석이 발생합니다. 제공된 코드에서 데이터 포인트의 주석 텍스트는 특히 그래프의 밀도가 높은 영역에서 겹치는 경향이 있습니다.

Lösung

주석이 겹치는 것을 방지하기 위해 Phlya가 작성한 adjustText 라이브러리는 간단하고 효과적인 솔루션을 제공합니다. 이 라이브러리는 가독성을 유지하면서 주석 위치를 자동으로 조정하여 가독성을 유지합니다.

adjustText 사용

다음 코드 조각은 제공된 예에서 adjustText를 사용하여 주석 배치를 최적화하는 방법을 보여줍니다.

<code class="python">import matplotlib.pyplot as plt
from adjustText import adjust_text

# ... (code to generate the data and plot remain the same as before) ...

plt.xlabel("Proportional Euclidean Distance")
plt.ylabel("Percentage Timewindows Attended")
plt.title("Test plot")

texts = [x for (x,y,z) in together]
eucs = [y for (x,y,z) in together]
covers = [z for (x,y,z) in together]

p1 = plt.plot(eucs,covers,color="black", alpha=0.5)
texts = []
for x, y, s in zip(eucs, covers, text):
    texts.append(plt.text(x, y, s))

adjust_text(texts, only_move={'points':'y', 'texts':'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))
plt.show()</code>

텍스트 배치 사용자 정의

adjustText는 주석 배치를 미세 조정할 수 있는 다양한 사용자 정의 옵션을 제공합니다. 예를 들어, 이동할 수 있는 요소(only_move 매개변수), 주석 정렬, 텍스트 개체 간의 반발 강도를 제어할 수 있습니다.

이러한 매개변수를 실험하면 최적의 텍스트 배치를 얻을 수 있습니다. 주석이 겹치는 것에 대한 걱정 없이 Matplotlib 그래프의 명확성과 시각적 매력을 극대화합니다.

위 내용은 Matplotlib 시각화에서 주석이 겹치는 것을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.