ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib ビジュアライゼーションで注釈が重複しないようにするにはどうすればよいですか?

Matplotlib ビジュアライゼーションで注釈が重複しないようにするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 09:31:27936ブラウズ

How can I prevent overlapping annotations in Matplotlib visualizations?

Matplotlib での注釈の重複

Matplotlib ビジュアライゼーションでは、注釈の重複という問題がよく発生し、グラフが乱雑で解釈が難しくなります。この記事では、この課題に対処するための包括的なソリューションを提供します。

The Herausforderung

複数の注釈が同じ画面スペースを共有すると、注釈の重複が発生し、視覚的に乱雑になります。提供されたコードでは、データ ポイントの注釈テキストが、特にグラフの密集した領域で重なる傾向があります。

The Lösung

注釈の重複を避けるために、Phlya によって作成されたAdjustText ライブラリが使用されます。シンプルで効果的なソリューションを提供します。このライブラリは、読みやすさを維持しながら、重なりを最小限に抑えるために注釈の位置を自動的に調整します。

adjustText の使用

次のコード スニペットは、提供された例で、adjustText を使用して注釈の配置を最適化する方法を示しています。

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

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