带有自定义刻度的散点图
Scatter plot with custom ticks
我想绘制 y 轴上的波长(浮点数)和 x 轴上的光谱 class(character/string 列表)的散点图,标签 = ['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 "'])
但是我遇到了这个烦人的错误
could not convert string to float: 'G'
解决这个问题后,我想按如下方式制作自定义 xticks。但是,我怎么能
labels = ['B','A','F','G','K','M']
ticks = np.arange(len(labels))
plt.xticks(ticks, labels)
首先,我认为您必须将这些字符串映射到整数,然后 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)
我想绘制 y 轴上的波长(浮点数)和 x 轴上的光谱 class(character/string 列表)的散点图,标签 = ['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 "'])
但是我遇到了这个烦人的错误
could not convert string to float: 'G'
解决这个问题后,我想按如下方式制作自定义 xticks。但是,我怎么能
labels = ['B','A','F','G','K','M']
ticks = np.arange(len(labels))
plt.xticks(ticks, labels)
首先,我认为您必须将这些字符串映射到整数,然后 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)