2016-05-05 5 views
1

x軸の波長(float)とX軸のスペクトルクラス(文字列/文字列のリスト)の散布図を作成したい、labels = ['B'、 'A' 、 'F'、 'G'、 'K'、 'M']である。データはpandas dataframe、dfに保存されます。カスタムティックのスキャッタプロット

df['Spec Type Index'] 
0  NaN 
1  A 
2  G 
.  . 
.  . 
167  K 
168 Nan 
169  G 

はその後、

df['Disk Major Axis "'] 
0  4.30 
1  4.50 
2  22.00 
.   . 
.   . 
167  1.32 
168  0.28 
169  25.00 

はこのように、私は、これは

plt.scatter(df['Spec Type Index'], df['Disk Major Axis "']) 

で簡単に行うべきであると思った。しかし、私はこの迷惑なエラー

がに文字列を変換できませんでした取得します浮動小数点: 'G'

これを修正した後、次のようにカスタムxtickを作成します。しかし、どのように、私はあなたがしてmatplotlibのはどここれらのポイントを配置する場所を決めることができ整数にこれらの文字列をマップする必要があり、私

labels = ['B','A','F','G','K','M'] 
ticks = np.arange(len(labels)) 
plt.xticks(ticks, labels) 

答えて

0

まず考えることができます。

labels = ['B','A','F','G','K','M'] 
mapping = {'B': 0,'A': 1,'F': 2,'G': 3,'K': 4,'M': 5} 
df = df.replace({'Spec Type Index': mapping}) 

次に散乱をプロットし、最後に

fig, ax = plt.subplots() 
ax.scatter(df['Spec Type Index'], df['Disk Major Axis "']) 

ax.set_xticklabels(labels) 
関連する問題