首頁  >  文章  >  後端開發  >  如何使用 adjustText 防止圖形中的註解重疊?

如何使用 adjustText 防止圖形中的註解重疊?

Susan Sarandon
Susan Sarandon原創
2024-10-31 02:48:31329瀏覽

How to Prevent Overlapping Annotations in Graphs with adjustText?

如何避免圖表中的註解重疊

圖表中的註解經常重疊,導致資訊難以閱讀。在本文中,我們將使用 adjustmentText 函式庫討論此問題的解決方案。

Matthew Brett 為條形圖中的重疊註釋提供了一個有前途的解決方案。然而,將“axis”方法轉換為其他圖形類型可能具有挑戰性。

adjustText 函式庫

由 Phlya 編寫的 adjustmentText 函式庫提供了一個優雅的解決方案防止圖表中的文字重疊。它會自動調整文字註釋的位置以盡量減少重疊。

範例實作

要實現此解決方案,請按照以下步驟操作:

  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. 使用adjustmentText 調整文字位置:

    <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