Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 成对坐标的散点图,用标签的数据框索引名称注释_Python_Pandas_Dataframe_Annotations_Scatter Plot - Fatal编程技术网

Python 成对坐标的散点图,用标签的数据框索引名称注释

Python 成对坐标的散点图,用标签的数据框索引名称注释,python,pandas,dataframe,annotations,scatter-plot,Python,Pandas,Dataframe,Annotations,Scatter Plot,对于双列数据框,其行包含一对作为x-y坐标属于彼此的两个值,如何生成2D绘图,以便为每对坐标指定一个注释文本标签,该标签等于该行的索引名称 例如,坐标(0.983801,0.0155373)应在绘图中显示为单个点,并用AXP注释。与其余行类似,每个行的名称都是唯一的 数据帧由两个一维numpy数组a和b构成,而标签是一个长度与两者相等的列表: #columns labeled on next line since the transpose of index arg is columns df

对于双列数据框,其行包含一对作为x-y坐标属于彼此的两个值,如何生成2D绘图,以便为每对坐标指定一个注释文本标签,该标签等于该行的
索引
名称

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

数据帧由两个一维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

试着这样做:

# 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)
输出:


这很有效。如何控制点和标签之间的距离,使它们不会重叠?@develist您可以向
plt.text
plt.text(行['pe']+0.03,行['jsc']+0.03,idx)
。使用偏移量。我不认为
df.iterrows
维护了数据点索引的相应顺序,就像它们在数据帧中的显示方式一样。打印标签和数据点与原始标签和数据点不对应data@develarist是的。这就是
ItErrors
的全部要点。如果您认为顺序不正确,您应该检查数据帧的创建。这只是df:col=df[col\u name]中col\u name的