Как построить соответствующие данные для каждой точки линии тренда - PullRequest
1 голос
/ 18 апреля 2020

У меня есть эти данные:

Years        Value
2016-12-31   -495982.0
2017-12-31   -405549.0
2018-12-31   -351541.0
2019-12-31   -283790.0

Когда я строю данные, у меня появляется линия тренда с точками, представляющими данные за каждый год. Например:

enter image description here Мой вопрос состоит в том, как мне построить сумму значений для каждого года в каждой точке данных. Так, например, для 2016-12-31 я хотел бы построить -495982.0 на первой точке линии тренда.

Вот так выглядит мой код:

ax.set_title('Plotting the keg')
ax.set_xlabel('Years')
ax.set_ylabel('keg value')
plt.plot(Years,Value, '-o', color='orange')
ax.get_yaxis().set_major_formatter(matplotlib.kegger.FuncFormatter(lambda x, p:format(int(x), ',')))
plt.show()

1 Ответ

1 голос
/ 18 апреля 2020

Вы можете создать al oop и использовать функцию ax.annotate (), а также поэкспериментировать с размещением аннотации, а также с любым текстом, который вы хотите включить, кроме значения y.

import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'Years': ['2016-12-31', '2017-12-31', '2018-12-31', '2019-12-31'],
    'Value': [-495982.0, -405549.0, -351541.0, -283790.0]})
Years = df['Years']
Value = df['Value']

fig, ax = plt.subplots()
ax.set_title('Plotting the keg')
ax.set_xlabel('Years')
ax.set_ylabel('keg value')
plt.plot(Years,Value, '-o', color='orange')

# annotate by looping through each (x, y) coordinate
for index in range(len(Years)):
    ax.annotate(Value[index], xy=(Years[index],Value[index]), color = 'black')
plt.show()

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