Plotly: как реализовать диапазон даты и времени по оси X в случайно сгенерированной временной серии - PullRequest
0 голосов
/ 04 мая 2020

Я генерирую случайное время прохождения ser ie, которое начинается в день 1 и заканчивается в день "l",

Я хотел бы представить даты на моем x_axis, где начинается ser ie в начальный день, установленный путем ввода и окончания дня "l"

Этот код генерирует время ser ie:

import plotly.graph_objects as go
import numpy as np

l = 360 # Number of days to Study
time_step = 1
# initial_y = int(input('Enter initial value: '))
x_steps = np.random.choice([0, 0], size=l) + time_step  # l steps
y_steps = np.random.choice([-1, 1], size=l) + 0.2 * np.random.randn(l) # l steps
x_position = np.cumsum(x_steps) # integrate the position by summing steps values
y_position = np.cumsum(y_steps) # integrate the position by summing steps values

fig = go.Figure(data=go.Scatter(
    x=x_position,
    xcalendar='gregorian', 
    # range_x=['2015-12-01', '2016-01-15'],
    y=y_position + 1500,
    mode='lines+markers',
    name='Random Walk',
    marker=dict(
        color=np.arange(l),
        size=8,
        colorscale='Greens',
        showscale=False
    )
))

fig.show()

1 Ответ

1 голос
/ 04 мая 2020

Вы можете добавить к своему примеру это:

initial_date = '2015-12-01'

df = pd.DataFrame({"x":x_position,
                   "y":y_position})

df["date"] = pd.date_range(start=initial_date, periods=l)

fig = go.Figure(data=go.Scatter(
    x=df["date"],
    xcalendar='gregorian', 
    # range_x=['2015-12-01', '2016-01-15'],
    y=df["y"] + 1500,
    mode='lines+markers',
    name='Random Walk',
    marker=dict(
        color=np.arange(l),
        size=8,
        colorscale='Greens',
        showscale=False
    )
))

fig.show()

enter image description here

...