Matplotlib 시각화에서는 종종 주석 중복 문제가 발생하여 그래프가 복잡해지고 해석하기 어려워집니다. 이 문서에서는 이 문제를 해결하기 위한 포괄적인 솔루션을 제공합니다.
여러 주석이 동일한 화면 공간을 공유하여 시각적 혼란을 야기할 때 겹치는 주석이 발생합니다. 제공된 코드에서 데이터 포인트의 주석 텍스트는 특히 그래프의 밀도가 높은 영역에서 겹치는 경향이 있습니다.
주석이 겹치는 것을 방지하기 위해 Phlya가 작성한 adjustText 라이브러리는 간단하고 효과적인 솔루션을 제공합니다. 이 라이브러리는 가독성을 유지하면서 중복을 최소화하기 위해 주석 위치를 자동으로 조정합니다.
다음 코드 조각은 제공된 예에서 adjustText를 사용하여 주석 배치를 최적화하는 방법을 보여줍니다.
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()
adjustText는 주석 배치를 미세 조정할 수 있는 다양한 사용자 정의 옵션을 제공합니다. 예를 들어, 이동할 수 있는 요소(only_move 매개변수), 주석 정렬, 텍스트 개체 간의 반발 강도를 제어할 수 있습니다.
이러한 매개변수를 실험하면 다음과 같은 최적의 텍스트 배치를 얻을 수 있습니다. 주석이 겹치는 것에 대한 걱정 없이 Matplotlib 그래프의 명확성과 시각적 매력을 극대화합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3