首頁 >後端開發 >Python教學 >如何防止 Matplotlib 視覺化中出現重疊註解?

如何防止 Matplotlib 視覺化中出現重疊註解?

Barbara Streisand
Barbara Streisand原創
2024-10-30 09:31:27940瀏覽

How can I prevent overlapping annotations in Matplotlib visualizations?

Matplotlib 中的重疊註釋

Matplotlib 視覺化經常遇到重疊註釋的問題,導致圖表混亂且難以解釋。本文提供了一個全面的解決方案來應對這項挑戰。

Herausforderung

當多個註釋共享同一螢幕空間時,就會出現重疊註釋,從而造成視覺混亂。在提供的程式碼中,資料點的註解文字往往會重疊,尤其是在圖形的較密集區域中。

Lösung

為了避免重疊註釋,由 Phlya 編寫的 adjustmentText 庫,提供了一個簡單而有效的解決方案。該庫會自動調整註釋的位置,以最大限度地減少重疊,同時保持可讀性。

使用adjustmentText

以下程式碼片段示範如何在提供的範例中使用adjustmentText 來最佳化註解位置:

<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