>  기사  >  백엔드 개발  >  adjustText를 사용하여 그래프에서 주석이 겹치는 것을 방지하는 방법은 무엇입니까?

adjustText를 사용하여 그래프에서 주석이 겹치는 것을 방지하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-31 02:48:31329검색

How to Prevent Overlapping Annotations in Graphs with adjustText?

그래프에서 주석이 겹치는 것을 방지하는 방법

그래프의 주석은 종종 겹쳐서 정보를 읽기 어렵게 만듭니다. 이 기사에서는 adjustText 라이브러리를 사용하여 이 문제에 대한 솔루션을 논의할 것입니다.

Matthew Brett은 막대 그래프에서 주석이 겹치는 것에 대한 유망한 솔루션을 제공했습니다. 그러나 "축" 메서드를 다른 그래프 유형으로 변환하는 것은 어려울 수 있습니다.

adjustText 라이브러리

Phlya가 작성한 adjustText 라이브러리는 다음을 위한 우아한 솔루션을 제공합니다. 그래프에서 텍스트가 겹치는 것을 방지합니다. 텍스트 주석의 위치를 ​​자동으로 조정하여 중복을 최소화합니다.

구현 예

이 솔루션을 구현하려면 다음 단계를 따르세요.

  1. 필요한 라이브러리 가져오기:

    <code class="python">import matplotlib.pyplot as plt
    from adjustText import adjust_text
    import numpy as np</code>
  2. 데이터를 (x, y, 텍스트) 값을 포함하는 튜플 목록으로 준비합니다.
  3. 플롯 만들기 줄과 주석을 추가합니다.

    <code class="python">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))</code>
  4. adjustText를 사용하여 텍스트 위치를 조정합니다.

    <code class="python">adjust_text(texts, only_move={'points': 'y', 'texts': 'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))</code>
  5. 플롯 표시:

    <code class="python">plt.show()</code>

출력 예

결과 플롯에는 주어진 이미지와 같이 중첩을 피하기 위해 적절하게 조정된 주석이 있습니다.

미세 조정

보다 정확한 제어를 위해 다음 매개변수를 조정할 수 있습니다.

  • only_move: 이동할 요소를 지정합니다(예: 텍스트를 수직으로만 이동하세요).
  • force_points: 점 사이의 반발력 강도를 조정합니다.
  • force_text: 텍스트 사이의 반발력 강도를 조정합니다.
  • arrowprops: 연결 화살표의 모양을 사용자 정의하세요.

이러한 매개변수를 사용하면 특정 요구 사항에 맞게 조정 프로세스를 조정할 수 있습니다.

위 내용은 adjustText를 사용하여 그래프에서 주석이 겹치는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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