AdjustTextを使用してグラフ内の注釈の重複を防ぐ方法?

Susan Sarandon
リリース: 2024-10-31 02:48:31
オリジナル
328 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!