fig = go.Figure()
fig.add_trace(
go.Scatter(x=alldates, y=countriesData[0]["ToxPi Score"],
name = "Suffolk",customdata=countriesData[0],hovertemplate=common_template)
)
fig.update_xaxes(
rangeslider_visible=True,
rangeselector=dict(
buttons=list([
dict(count=1, label = "1m", step = "month", stepmode = "backward"),
dict(count=6, label = "6m", step = "month", stepmode = "backward"),
dict(count=1, label = "YTD", step = "year", stepmode = "todate"),
dict(count=1, label = "1y", step = "year", stepmode = "backward"),
dict(step = "all")
])
)
)
fig.show()
Я работаю над простым набором данных, в котором я построил оценку состояния ToxPi по датам.
Теперь мне нужно построить эти данные в формате свечей в соответствии с заданными направлениями.
Open value: ToxPi value at the first day in a given range of 7 days. Close value: ToxPi value at the last (7th) day in a given range of 7 days. High value: The highest ToxPi value in a given range of 7 days. Low value: The lowest ToxPi value in a given range of 7 days.
Я не могу понять, как скрыть это или разделить данные на недельный формат
EDIT
После обновления столбца даты и времени в df это выглядит так
Пожалуйста помоги Спасибо заранее.
@ itprorh66 Я думаю, что это немного грубо — Дэвион приложил разумные усилия, чтобы построить ToxPi
баллы с помощью селектора диапазона, прежде чем застрять на создании свечного графика — иногда нечего «попробовать», потому что ответ не в документации и не легко поддается исследованию.
@DerekO Хотя мой комментарий может быть резким, невозможно оказать помощь, не имея представления об обрабатываемых данных. Минимальный воспроизводимый набор состоит из выборки ввода, ожидаемого вывода, фактического вывода и соответствующего кода, необходимого для воспроизведения проблемы. Этот вопрос не может предоставить эту информацию
@ itprorh66, хотя я согласен с тем, что здесь был бы полезен минимальный воспроизводимый пример, я бы сказал, что Дэвион довольно подробно описал конкретную проблему, с которой ему нужна помощь, — по крайней мере, достаточно, чтобы я понял, о чем спрашивают.
@Davion, можете ли вы предоставить образец своего DataFrame? вы можете скопировать вывод из countriesData[0].head().to_dict()
и вставить его в свой вопрос
@DerekO Я обновил это в своем вопросе
Хотя я не совсем понимаю, что подразумевается под «заданным диапазоном в 7 дней», я предполагаю, что для расчета открытия, максимума, минимума и закрытия следует использовать 7-дневный скользящий расчет, и что ваши данные имеют зернистость. от 1 дня.
Я не уверен, что у вашего countriesData[0]
есть столбец даты и времени, поэтому мы будем использовать массив alldates
, который вы передали go.Scatter
:
df = countriesData[0].copy()
df["date_time"] = alldates
df["date_time"] = pd.to_datetime(df["date_time"])
df = df.set_index("date_time")
## create your features Open, Close, High, Low:
df["Open"] = df["ToxPi Score"].rolling("7D").apply(lambda row: row.iloc[0])
df["Close"] = df["ToxPi Score"].rolling("7D").apply(lambda row: row.iloc[-1])
df["High"] = df["ToxPi Score"].rolling("7D").max()
df["Low"] = df["ToxPi Score"].rolling("7D").max()
Затем вы можете использовать свой модифицированный DataFrame для построения свечного графика:
fig = go.Figure(data=[go.Candlestick(
x=df.index,
open=df["Open"],
high=df["High"],
low=df["Low"],
close=df["Close"]
)])
Спасибо за попытку, но я получаю сообщение об ошибке || ValueError: окно должно быть целым числом 0 или больше
Я также добавил столбец даты и времени в свой df и отредактировал вопрос выше.
@Davion, вы можете скопировать и вставить отформатированный текст словаря в вопрос? скриншот не поможет, потому что я не могу воссоздать ваш DataFrame и попытаться воспроизвести ошибку, которую вы получаете - спасибо
одна из возможностей заключается в том, что ваш столбец даты и времени на самом деле не имеет формата даты и времени. можно попробовать countriesData[0]["date_time"] = pd.to_datetime(countriesData[0]["date_time"])
? (я отредактировал свой ответ)
В нем слишком много символов, поэтому я не могу отправить его сюда. pastebin.com/JSMKHqc0
также приведенный выше код дает мне ошибку ||KeyError: 'date_time' ||
@ Дэвион, ты повторил строки в порядке ответа? как только вы установите только что созданный столбец "date_time"
в качестве индекса, этот столбец больше не существует
Давайте продолжить обсуждение в чате.
Это не услуга по написанию кода или репетиторству. Мы можем помочь решить конкретные технические проблемы, а не открытые запросы на код или совет. Пожалуйста, отредактируйте свой вопрос, чтобы показать, что вы пробовали до сих пор, и с какой конкретной проблемой вам нужна помощь. См. страницу Как задать хороший вопрос для получения подробной информации о том, как лучше всего помочь нам помочь вам.