我正在尝试在图表中输入每个球员的姓名。我已经创建了下面的函数来打印点图。

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

python - 发短信散点图-LMLPHP

顺便说一句,如果可能的话,我想用玩家的面孔而不是点数来展示图片。有人可以阐明吗?

最佳答案

你需要做

graph.text(datos['Eficiencia Defensiva'].values[line]+0.2, datos['Eficiencia Ofensiva'].values[line], datos['Nombre'].values[line], size='medium')


代替

graph.text(datos['Eficiencia Defensiva'][line]+0.2, datos['Eficiencia Ofensiva'][line], datos['Nombre'][line], size='medium')


因为df['key']为您提供了一个序列,不一定必须由整数索引访问,但是另一方面,df['key'].values为您提供了一个数值的numpy数组,当然可以使用整数索引进行访问。

如果这不起作用,则可能意味着datos的形状与您期望的不一样,因此您应验证datos['Eficiencia Ofensiva'].values.shape[0] == datos.shape [0]`。

关于python - 发短信散点图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59895116/

10-12 23:08