Нарисуйте линию на графике между 2 точками?

#plotly

#сюжетно

Вопрос:

Вот код:

 import plotly.graph_objects as go import pandas as pd from datetime import datetime  # build complete timepline from start date to end date dt_all = pd.date_range(start=raw_bn1['Date'].iloc[0],end=raw_bn1['Date'].iloc[-1])  # retrieve the dates that ARE in the original datset dt_obs = [d.strftime("%Y-%m-%d") for d in pd.to_datetime(raw_bn1['Date'])]  # define dates with missing values dt_breaks = [d for d in dt_all.strftime("%Y-%m-%d").tolist() if not d in dt_obs]  fig = go.Figure(data=[go.Candlestick(x=raw_bn1['Date'],  open=raw_bn1['Open'],  high=raw_bn1['High'],  low=raw_bn1['Low'],  close=raw_bn1['Close'])]) fig.update_layout(xaxis_rangeslider_visible=False) fig.update_xaxes(rangebreaks=[dict(values=dt_breaks)]) fig.show()  

По этому я получаю график свечей. Теперь я хотел бы соединить 2 даты ( например, 1 декабря 2020 года и 13 августа 2021 года) «Высокой» прямой линией. Как это сделать ?

Ответ №1:

Сегменты линий были добавлены с использованием данных свечей из официального справочника. С добавлением линейного графика установите ось x на дату начала, дату окончания, а ось y-на цену на дату начала и цену на дату окончания в списке.

 import plotly.graph_objects as go import pandas as pd  df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')  fig = go.Figure(data=[go.Candlestick(x=df['Date'],  open=df['AAPL.Open'], high=df['AAPL.High'],  low=df['AAPL.Low'], close=df['AAPL.Close'])  ])  fig.add_trace(go.Scatter(x=['2016-11-02','2017-01-26'], y=[111,125], mode='lines', name='trend line', line=dict(color='blue'))) fig.update_layout(xaxis_rangeslider_visible=False) fig.show()  

введите описание изображения здесь