2017-09-26 12 views
0

私はこれらの2行について質問があります。私はそれを完全に理解していません。ax.annotateに関する質問

%このp.get_width(), (p.get_x() + p.get_width()/ 2., p.get_y())

それが正確に何をしているのですか? そして、0のような特別な値を取り除く方法はありますか?0以外のすべての数値が表示されるようにするには?あるいは名前と名前を交換するのですか?

for p in ax.patches:     
    ax.annotate(("%1.f") % p.get_width(), (p.get_x() + p.get_width()/ 2., p.get_y()), fontsize = 2, xytext=(-3, 2),textcoords='offset pixels') 
+1

:https://pyformat.info – Bart

答えて

0

注釈機能は、あなたのプロットのいくつかの機能(https://matplotlib.org/users/annotations.html)にテキストを追加します。あなたのケースでは、注釈機能は、次の引数を取ります。

a)のテキストを書き込むことが

("%1.f") % p.get_width() 

をこれは複雑な部分です。 %は文字列の書式設定に使用されます。あなたの場合、%はp.get_width()の値に置き換えられます。 1.fはフォーマットを指定します(コンマの後に1つの数字を持つ浮動小数点数)。したがって、p.get_width()の結果が1.23445の場合、結果は文字列 "1.2"になります。この番号は問題なく名前で変更できます。値ゼロを避けるために、上記の行をチェックします。

B)特徴の座標が注釈を付けたい

(p.get_x() + p.get_width()/ 2., p.get_y()) 

これは、x座標およびyは、フォームの座標(X、Yを表すちょうど2つのfloat)

C)フォントサイズであります注釈

fontsize = 2 

D)アノテーションを

を書き込む座標

e)の他の引数 `%`のために

textcoords='offset pixels' 
+2

を参照してください* * "コンマの後つの番号を持つフロート"。いいえ、それは '.1f' – Bart