我创建了以下图形。我想为图中创建的每条线注释第一个值和最后一个值。会在每行之前和结尾处为每行注释该值
如何?
data = {'Time':['1', '2', '1', '2', '1', '2', '1', '2', '1', '2', '1', '2', '1', '2' , '1', '2'], 'Country':['Italy', 'Italy', 'Italy', 'Italy', 'Italy', 'Italy', 'Italy', 'Italy', 'Russia', 'Russia', 'Russia', 'Russia' , 'Russia', 'Russia', 'Russia', 'Russia'], 'Score':[20, 21, 14, 15, 19, 18, 5, 9, 5, 8, 3, 3, 5, 1, 3, 8]}
df = pd.DataFrame(data)
sns.lineplot(x="Time", y="Score", hue="Country", data=df)
答案 0 :(得分:0)
如果没有确切的详细信息,可以使用sns.lineplot
返回的axis对象,然后使用axis对象的text
方法。
以下,我计算每个国家在“时间” = 1时的平均值“分数”,然后将其作为文本添加到图表中。您可以根据需要对此进行自定义:
ax = sns.lineplot(x="Time", y="Score", hue="Country", data=df)
means = df.groupby(['Country','Time']).mean()
times = ['1', '2']
x_positions = [0.02, 0.9]
for country in df['Country'].unique():
for time, xpos in zip(times, x_positions):
mean = means.loc[(country, time)].values
ax.text(xpos, mean-1.1, mean[0])