2017-11-05 14 views
0

私は、とtest2がxとyに対応するリストであるvariable=plt.scatter(test1,test2)を使用して散布図を作成しました。散布図の各点に文字列のリストを注釈する方法はありますか?

作成した文字列や可変色のリストを各ポイントに注釈する方法はありますか?

私が発見したこと:variablelabelは、文字列の私のリストとして定義されて

for i, txt in enumerate(variablelabel): 
    variable.annotate(txt, (test1[i],test2[i])) 

。残念ながら、これは私の散布図に注釈をつけていないようです。

ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5), 
arrowprops=dict(facecolor='black', shrink=0.05), 
ax.set_ylim(-2,2) 
plt.show() 

をしかし、これは私が望んでいない大きな矢印を作成します。

代わりに、私はあなたがこのようなコードを使用して矢印を追加することができます発見しました。私は私のリストから文字列を必要とします。

申し訳ありませんが、私は非常に明確ではない。

+0

ハッキーな解決策は、注釈を呼び出してarrowprops = Noneを渡すことです。 –

答えて

0

各ポイントに文字列のリストを付けることができます。用途はmatplotlib.annotateです。ただしmatplotlib.axes.Axesオブジェクトの代わりにmatplotlib.collections.PathCollectionオブジェクト(matplotlib.scatterの結果)のannotateを呼び出します。あなたのコードで

variable = plt.scatter(test1, test2) 
for i, txt in enumerate(variablelabel): 
    variable.annotate(txt, (test1[i], test2[i])) 

variablematplotlib.collections.PathCollectionです。代わりに次を使用します。

plt.scatter(test1, test2) 
for i, txt in enumerate(variablelabel): 
    plt.annotate(txt, (test1[i], test2[i])) 

あなたはこのような何かを取得する必要があります:

enter image description here

私は、これはあなたを助けることを願っています。

関連する問題