在matplotlib python中注释散点图中的每个数据点

在matplotlib python中注释散点图中的每个数据点,python,matplotlib,annotations,scatter-plot,Python,Matplotlib,Annotations,Scatter Plot,散点图没有显示图中每个数据点旁边的人员姓名 我正试图画一幅工资和奖金的散点图。唯一缺少的是绘图中每个数据点的每个员工的姓名 缠绕TypeError:无法连接'str'和'tuple'对象 希望看到与员工对应的每个数据的名称。我认为问题在于您的“salary”和“bonus”列被解释为字符串。因此,当您xy+(0.02,5)时,它认为您正在尝试将字符串(xy)与元组连接起来。我认为您应该尝试将这些列强制转换为浮点数或整数,具体取决于您的情况。可能重复结束问题。此主题上存在多个重复项Ried th

散点图没有显示图中每个数据点旁边的人员姓名

我正试图画一幅工资和奖金的散点图。唯一缺少的是绘图中每个数据点的每个员工的姓名

缠绕
TypeError:无法连接'str'和'tuple'对象


希望看到与员工对应的每个数据的名称。

我认为问题在于您的
“salary”
“bonus”
列被解释为字符串。因此,当您
xy+(0.02,5)
时,它认为您正在尝试将字符串(
xy
)与元组连接起来。我认为您应该尝试将这些列强制转换为浮点数或整数,具体取决于您的情况。

可能重复结束问题。此主题上存在多个重复项Ried the但运气不佳--首先将奖金、薪水和姓名转换为列表,因为建议解决方案中的数据类型为列表,但得到了以下错误值error:无法将float NaN转换为Integer Hanks,@Zaccharie Ramzi感谢您的回复,我可以看到绘图和数据点,但所有的名称都杂乱无章地放在绘图的左下角。我使用的代码是这样的::'fig,ax=plt.subplot()my_scatter_plot=ax.scatter(df[“salary”],df[“bonus”])ax.set_xlabel(“salary”)ax.set_ylabel(“bonus”)ax.set_title(“Enron Employees salary and bonus scatter plot”)for(),df[“Names”,“salary”,“bonus”]]中的行。iterrows():xy=行[“salary”,“bonus”]。astype(float)xytext=(0.02,5)ax.annotate(row[“Names”],xy,xytext)plt.show()'因此,在尝试之后,似乎确实需要进行添加。为了简化操作,我将所有内容转换为numpy(
import numpy as np
)数组:
xytext=np.array(xy)+np.array([0.04,0.02])
,并将偏移量稍微减小一点(就像我做的那样)。还有一件事,你可能需要自己处理x和y限制。最后,如果能用一个简单的工作示例来帮助你,那就容易多了。下次试着想出一个例子(我必须自己做):@RizwanAhmed如果它能解决你的问题,你能接受这个答案吗()?谢谢,@Zaccharie Ramzi,它起作用了。我还发现我的数据中的南也是问题的一部分。感谢你的帮助。
fig, ax = plt.subplots()
my_scatter_plot = ax.scatter(
df["salary"], 
df["bonus"] 

)
ax.set_xlabel("Salary")
ax.set_ylabel("Bonus")
ax.set_title("Enron Employees Salary and Bonus Scatter Plot")

for _, row in df[["Names","salary","bonus"]].iterrows():
    xy = row[["salary", "bonus"]]
    xytext= xy + (0.02, 5)
    ax.annotate(row["Names"], xy, xytext)


plt.show() 


TypeError: cannot concatenate 'str' and 'tuple' objects