2017-04-05 15 views
1

matplotlibのグラフに凡例を追加しようとしています。凡例を作成する代わりに、凡例にすべてのマイラーベルの完全なリストを置きます。matplotlibで凡例をプロットする:エラー

私のグラフは次のようになります。 enter image description here

伝説が遮断され、私はそれ以上を参照してくださいカント、私はその大きさに起因すると仮定します。

これは私のコードです:

features2 = ["Number of Sides"] 
features3 = ["Largest Angle"] 
header2 = ["Label"] 

data_df = pd.DataFrame.from_csv("AllMixedShapes2.csv") 
X1 = np.array(data_df[features2].values) 
y1 = np.array(data_df[features3].values) 
l = np.array(data_df[header2].values) 

plt.scatter(X1[:, 0],y1, c=y, cmap=plt.cm.Paired, label=l) 
plt.axis([0, 17, 0, 200]) 
plt.ylabel("Maximum Angle (Degrees)") 
plt.xlabel("Number Of Sides") 
plt.title('Original 450 Test Shapes') 

plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.) 
plt.show() 

そしてAllMixedShapes2.csvは次のようになります。

enter image description here

私のpythonに非常に新たなんだと機械学習と、IVEが他の例が、私を試してみました傾けることは何もできません。

答えて

0

Matplotlibのlabel引数は、データセット内のポイントの個々のラベルの配列ではなく、データセット全体をラベル付けする単一の文字列を意味します。凡例に集約されるポイント・バイ・ポイントの配列の配列を渡す場合は、おそらく最良のオプションはSeabornのライブラリです。 Seabornは、より便利な統計的視覚化のためにmatplotlibの周りにラッパーを提供します。

これは、あなたのデータをどうしたいものを約行う必要があります。

import seaborn 
seaborn.lmplot('Number of Sides', 'Largest Angle', hue='Label', 
       data=data_df, fit_reg=False) 

私はより多くのアイデアのためにseaborn example galleryをチェックアウトすることをお勧めしたいです。

+0

ありがとう、タイトルを追加する方法もありますか?私はドキュメントでそれを見ることができません。 –

+0

Seabornはmatplotlibをラップしているので、 '' plt.title( 'My Title') '' – jakevdp

+0

もう一度jake –

関連する問題