#python #plotly #plotly-dash #dashboard #plotly-python
Вопрос:
Я пытаюсь построить дневную цену и общее количество заявок на покупку и запрос в день для типичной акции на одной и той же цифре.
Вот что я сделал до сих пор, но я думаю, что есть более эффективный способ создать тот же сюжет, используя Plotly.
import pandas as pd
import plotly.graph_objects as go
# Create the base figure
fig = go.Figure()
# Add a line graph
fig.add_trace(
go.Scatter(x=df.index, y=df['price'], name='Daily Price'))
# Create financial buttons
fin_buttons = [
{'count': 7, 'label': "1WTD", 'step': "day", 'stepmode': "todate"},
dict(count=7, label="1W", step="day", stepmode="backward"),
{'count': 1, 'label': "1MTD", 'step': "month", 'stepmode': "todate"},
dict(count=1, label="1M", step="month", stepmode="backward"),
{'count': 3, 'label': "3MTD", 'step': "month", 'stepmode': "todate"},
dict(count=3, label="3M", step="month", stepmode="backward"),
{'count': 6, 'label': "6MTD", 'step': "month", 'stepmode': "todate"},
dict(count=6, label="6M", step="month", stepmode="backward"),
{'count': 1, 'label': "YTD", 'step': "year", 'stepmode': "todate"},
{'count': 1, 'label': "1Y", 'step': "year", 'stepmode': "backward"},
dict(step="all")
]
# Create the date range buttons amp; show the plot
fig.update_layout({'xaxis': {'rangeselector': {'buttons': fin_buttons}}})
fig.update_layout(yaxis=dict(autorange=True))
# Add bar chart
fig.add_trace(
go.Bar(name='Bids',
x=df.index,
y=df['bid']))
# Add bar chart
fig.add_trace(
go.Bar(name='Asks',
x=df.index,
y=-df['ask']))
# Show the plot
fig.show()
Проблема autorange
в том, что свойство не изменяет масштаб оси y. Другими словами, когда я нажимаю кнопку времени, ось y графика цены не сбрасывается автоматически!
Комментарии:
1. Говорят, что масштаб оси y не меняется при выборе селектора диапазона, но меняется ось x, а не значение оси y. Что значит, что масштаб не меняется? Кроме того, что такое эффективный код и что такое конкретный пример? Создание кнопки?
2. @r-новички Благодарим вас за ваш комментарий. 1) Я имею в виду, как заставить ось y корректироваться в зависимости от части отображаемых данных? 2) Под эффективным кодом я имею в виду, как эксперт по сюжету визуализирует эту задачу? Есть ли другой способ восстановить ту же фигуру?