ホームページ  >  記事  >  バックエンド開発  >  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, text) 値を含むタプルのリストとしてデータを準備します。
  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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。