【问题标题】:Scatter plot with custom ticks带有自定义刻度的散点图
【发布时间】:2016-08-30 17:16:14
【问题描述】:

我想在 y 轴上绘制波长(浮点数)的散点图,在 x 轴上绘制光谱类别(字符/字符串列表)的散点图,labels = ['B','A','F', 'G','K','M']。数据保存在 pandas 数据框 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)

【问题讨论】:

    标签: python pandas matplotlib scatter-plot


    【解决方案1】:

    首先,我认为您必须将这些字符串映射到整数,然后 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-17
      • 2016-11-14
      • 1970-01-01
      • 2018-04-24
      • 2015-01-04
      • 2017-07-21
      • 2019-10-22
      • 1970-01-01
      相关资源
      最近更新 更多