У меня есть панды DataFrame
, которые сложены и реорганизованы так, как я хочу, и выглядит так:
print(df.unstack(level=0).cumsum())
Task 1020 1021 1022 1023 7141
Entry Date
2019-03-31 NaN NaN NaN 32930.0 NaN
2019-04-30 28845.0 16695.0 27427.5 127476.0 NaN
2019-05-31 57465.0 85745.0 NaN 142561.0 3515.61
2019-06-30 NaN 90515.0 NaN NaN NaN
Это я строю со следующими строками:
fig, ax1 = plt.subplots(1)
grouped_by_task.unstack(level=0).cumsum().plot(ax=ax1, style = '.-')
Теперь я хочу добавить еще один график (для простоты прямая линия между двумя точками).
Эти конечные точки этой линии задаются:
startmonth = '2019-03'
endmonth = '2022-03'
start_month = datetime.strptime(startmonth, "%Y-%m")
end_month = datetime.strptime(endmonth, "%Y-%m")
budget = [0, 1000000]
times = [start_month, end_month]
Я борюсь с получением сюжета линии на том же участке.
Я обнаружил несколько дискуссий о том, как добавить данные из нескольких DataFrame
s в один и тот же участок, но не панды DataFrame
вместе со значениями, не входящими в DataFrame
.
Я пытаюсь построить следующие строки:
grouped_by_task.unstack(level=0).cumsum().plot(ax=ax1, style = '.-') # (1)
ax1.plot(times, budget, '-') # (2)
plt.xlim(datetime.strptime(startmonth, "%Y-%m"),
datetime.strptime(endmonth, "%Y-%m") # (3)
Только с линией (1) я получаю график, где оси x и y определяются данными в DataFrame
.
Также и по строке (3) ось X определена правильно (дольше, чем данные, доступные в DataFrame
).
Со всеми 3 строками я настраиваю ось Y на значения в соответствии с данными в строке (2), но без линии.
Если я закомментирую строку (1), я получу правильную линию.
Единственное отличие состоит в том, что значения на тиках оси X написаны по-разному.
Есть предложения, что я делаю не так?