matplotlib でテキストを囲むボックス 質問する

matplotlib でテキストを囲むボックス 質問する

matplotlib でテキストの周囲にボックスを作成するにはどうすればよいでしょうか? 3 つの異なる行に 3 つの異なる色のテキストがあります。

 ax.text(2,1, 'alpha', color='red')
 ax.text(2,2, 'beta', color='cyan')
 ax.text(2,3, 'epsilon', color='black')

チュートリアルを見たhttp://matplotlib.org/users/recipes.html(最後の例) しかし、問題を解決できません。

ベストアンサー1

リンクした例で述べたように、クワーグbboxボックスを追加します。

ボックスの色などをどのように設定すればよいか混乱しているのではないでしょうか。簡単な例を挙げます。

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

ax.text(0.5, 0.8, 'Test', color='red', 
        bbox=dict(facecolor='none', edgecolor='red'))

ax.text(0.5, 0.6, 'Test', color='blue', 
        bbox=dict(facecolor='none', edgecolor='blue', pad=10.0))

ax.text(0.5, 0.4, 'Test', color='green', 
        bbox=dict(facecolor='none', edgecolor='green', boxstyle='round'))

ax.text(0.5, 0.2, 'Test', color='black', 
        bbox=dict(facecolor='none', edgecolor='black', boxstyle='round,pad=1'))

plt.show()

ここに画像の説明を入力してください

最後の 2 つは「ファンシー」な bbox パッチなので、パディングなどは異なる方法で設定されます。(パディングなどの単純なものの場合はかなり面倒ですが、舞台裏での実装は簡単になります。)

また、プロット内のものにラベルを付ける場合は、annotateより良い選択です。とりわけ、テキストを邪魔な場所に配置することができますポイントで特定のデータ位置から。

おすすめ記事