我想在y轴和光谱类(字符/字符串列表)的x轴上做一个波长(浮点)的散点图,标签= [' B',&#39 ; A'' F'' G'' K'' M&#39]。数据保存在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'
修好后,我想按照以下方式制作自定义xticks。但是,我怎么能
labels = ['B','A','F','G','K','M']
ticks = np.arange(len(labels))
plt.xticks(ticks, labels)
答案 0 :(得分:0)
首先,我认为你必须将这些字符串映射到整数,然后matplotlib可以决定放置这些点的位置。
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)