首页 > 解决方案 > 对坐标的散点图,用 pandas DataFrame 索引名称注释标签

问题描述

对于一个两列的 pandas DataFrame,其行包含一对作为 xy 坐标彼此属于的两个值,如何生成 2D 图,以便为每对坐标赋予一个带注释的文本标签,该标签等于该index名称的名称排?

在此处输入图像描述

例如,坐标 ( 0.983801, 0.0155373) 应在图中显示为单个点并用 注释AXP。与其余行类似,每个行都唯一命名

DataFrame 由两个一维 numpy 数组a和构造而成b,而标签是两个长度相等的列表:

#columns labeled on next line since the transpose of index arg is columns
df = pd.DataFrame(np.vstack((a,b)),index=['pe','jsc']).T 
df.index = labels #row labels

标签: pythonpandasdataframeannotationsscatter-plot

解决方案


尝试这样的事情:

# sample data
df = pd.DataFrame(np.random.rand(4,2), columns=['pe','jsc'], index=list('abcd'))

plt.scatter(df['pe'], df['jsc'])
for idx, row in df.iterrows(): 
    plt.text(row['pe'], row['jsc'], idx)

输出:

在此处输入图像描述


推荐阅读