带有自定义刻度的散点图

时间:2016-05-05 03:21:55

标签: python pandas matplotlib scatter-plot

我想在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)

1 个答案:

答案 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)