Python 文本散点图

Python 文本散点图,python,matplotlib,seaborn,scatter-plot,Python,Matplotlib,Seaborn,Scatter Plot,我正试图用文字记录图表中每个玩家的名字。我创建了下面的函数来打印点图 def eficiencia_chart(datos): graph=sns.scatterplot('Eficiencia Defensiva','Eficiencia Ofensiva', data=datos, hue='Position') plt.xlim(roundup(max(datos['Eficiencia Defensiva'])),rounddown(min(datos['Eficienc

我正试图用文字记录图表中每个玩家的名字。我创建了下面的函数来打印点图

def eficiencia_chart(datos):
    graph=sns.scatterplot('Eficiencia Defensiva','Eficiencia Ofensiva', data=datos, hue='Position')
    plt.xlim(roundup(max(datos['Eficiencia Defensiva'])),rounddown(min(datos['Eficiencia Defensiva'])))
    plt.ylim(rounddown(min(datos['Eficiencia Ofensiva'])),roundup(max(datos['Eficiencia Ofensiva'])))
    for line in range(0,datos.shape[0]):
        graph.text(datos['Eficiencia Defensiva'][line]+0.2, datos['Eficiencia Ofensiva'][line], datos['Nombre'][line], size='medium')
        print(line)
    return graph
但当我执行它时,只有一个名称正在打印并返回消息:
KeyError:1

顺便说一句,如果可能的话,我想展示一张有玩家脸的照片,而不是分数。有人能解释一下吗

你需要做什么

graph.text(datos['Eficiencia Defensiva'].值[line]+0.2,datos['Eficiencia of ensiva'].值[line],datos['Nombre'].值[line],size='medium')
而不是

graph.text(datos['Eficiencia Defensiva'][line]+0.2,datos['Eficiencia of ensiva'][line],datos['Nombre'][line],size='medium')
因为
df['key']
给了你一个序列,它不一定能被整数索引访问,但是
df['key'].另一方面,值给了你一个数值的numpy数组,当然可以用整数索引访问


如果这不起作用,则可能意味着
datos
的形状不是您期望的形状,您应该验证
datos['Eficiencia of ensiva'].values.shape[0]=
datos.shape[0]`。

嗨,威廉,非常感谢您的快速响应。你知道如何为每个点而不是点打印图像吗?你是在问如何做类似的事情吗?不完全是这样。我想用一张脸来代表每一点(因为最后是篮球运动员)。在这种情况下,所有案例都用相同的图片表示。@MiguelSantos实际上,我链接到的答案(底部答案)使用了不同的图像-作者特别指出,另一个答案仅用于使用相同的图像,而他们的答案用于使用不同的图像谢谢。我将尝试以这种方式继续