Если вы хотите найти дату или время между двумя датами, рассмотрите возможность построения свечных диаграмм по датам в виде временных меток pandas. Вы найдете пример под Simple Example with datetime Objects
чуть ниже на той же странице, на которую вы ссылаетесь. Но не волнуйтесь, в этом ответе вы найдете полный фрагмент кода для аналогичного подхода.
Если ваши даты на самом деле отформатированы как метки дат панд, вы можете легко найти дату между двумя датами, используя pd.to_pydatetime и различные подходы, как описано здесь. И поскольку plotly уже интерпретирует вашу ось X как временную шкалу, она будет принимать даты, которые происходят между датами в вашем фрейме данных. Plotly будет обрабатывать временные метки не только дат, но и времени суток.
Итак, если ваши даты, о которых идет речь:
datetime.datetime(2020, 10, 11, 0, 0)
и:
datetime.datetime(2020, 10, 12, 0, 0)
тогда приведенный ниже подход даст вам:
datetime.datetime(2020, 10, 11, 12, 0)
который даст вам линию между двумя датами, как вы и просили.
Посмотри:
![введите здесь описание изображения](https://i.stack.imgur.com/SW0Ux.png)
Полный фрагмент с данными и графическим кодом:
import pandas as pd
import plotly.graph_objects as go
from datetime import datetime
# data
open_data = [33.0, 33.3, 33.5, 33.0, 34.1]
high_data = [33.1, 33.3, 33.6, 33.2, 34.8]
low_data = [32.7, 32.7, 32.8, 32.6, 32.8]
close_data = [33.0, 32.9, 33.3, 33.1, 33.1]
dates = [datetime(year=2020, month=10, day=10),
datetime(year=2020, month=10, day=11),
datetime(year=2020, month=10, day=12),
datetime(year=2020, month=10, day=13),
datetime(year=2020, month=10, day=14)]
# data organized in a pandas dataframe
df=pd.DataFrame(dict(open=open_data,
high=high_data,
low=low_data,
close=close_data,
dates=dates))
# calculations using to_pydatetime() to get the date/time
# between your dates
a=df.dates.iloc[1].to_pydatetime()
b=df.dates.iloc[2].to_pydatetime()
linedate = a + (b - a)/2
# plotly figure setup
fig = go.Figure(data=[go.Candlestick(x=df.dates,
open=open_data, high=high_data,
low=low_data, close=close_data)])
# edit layouts
fig.update_layout(
title='Dates are pandas timestamps',
yaxis_title='AAPL Stock',
shapes = [dict(
x0=linedate, x1=linedate, y0=0, y1=1, xref='x', yref='paper',
line_width=2)],
annotations=[dict(x=linedate, y=0.8, xref='x', yref='paper',font=dict(
color="blue",size=14),
showarrow=False, xanchor='left', text='Vertical line between two dates')]
)
fig.show()
person
vestland
schedule
26.11.2019