Seaborn散点图 - 标签数据点

时间:2018-05-30 13:10:26

标签: python plot seaborn

我有一个使用数据帧数据的Seaborn散点图。我想使用与该观察(行)相关联的df中的其他值向绘图添加数据标签。请看下面 - 有没有办法在图中添加至少一个列值(A或B)?更好的是,有没有办法添加两个标签(在这种情况下,A和B列中的值都是?)

我尝试使用for循环使用类似下面的函数进行搜索,但是这个散点图没有成功。

感谢您的帮助。

df_so = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
scatter_so=sns.lmplot(x='C', y='D', data=df_so,
           fit_reg=False,y_jitter=0, scatter_kws={'alpha':0.2})

fig, ax = plt.subplots() #stuff like this does not work 

1 个答案:

答案 0 :(得分:0)

使用:

df_so = pd.DataFrame(np.random.randint(0,100,size=(20, 4)), columns=list('ABCD'))
scatter_so=sns.lmplot(x='C', y='D', data=df_so,
           fit_reg=False,y_jitter=0, scatter_kws={'alpha':0.2})


def label_point(x, y, val, ax):
    a = pd.concat({'x': x, 'y': y, 'val': val}, axis=1)
    for i, point in a.iterrows():
        ax.text(point['x']+.02, point['y'], str(point['val']))

label_point(df_so['C'], df_so['D'], '('+df_so['A'].astype(str)+', '+df_so['B'].astype(str)+')', plt.gca())  df_so = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
scatter_so=sns.lmplot(x='C', y='D', data=df_so,
           fit_reg=False,y_jitter=0, scatter_kws={'alpha':0.2})


def label_point(x, y, val, ax):
    a = pd.concat({'x': x, 'y': y, 'val': val}, axis=1)
    for i, point in a.iterrows():
        ax.text(point['x']+.02, point['y'], str(point['val']))

label_point(df_so['C'], df_so['D'], '('+df_so['A'].astype(str)+', '+df_so['B'].astype(str)+')', plt.gca())  

输出:

enter image description here