добавление номера этикетки к первому и последнему наблюдению - PullRequest
0 голосов
/ 27 марта 2019

Я создал следующий график. Я хотел бы аннотировать первое и последнее значение для каждой из линий, созданных на графике. Значение будет аннотировано для каждой строки непосредственно перед строкой и в ее конце

Как?

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)

1 Ответ

0 голосов
/ 27 марта 2019

Без дополнительной информации о том, что именно вам нужно, вы можете использовать объект осей, возвращенный sns.lineplot, а затем использовать метод text объекта осей.

В следующемЯ вычисляю среднее значение «Score» для каждой страны при «Time» = 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])

example_text_to_axis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...