我正在尝试在图表中输入每个球员的姓名。我已经创建了下面的函数来打印点图。
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'].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/