巧妙地使用 Rangebreaks 的问题
Problems using Rangebreaks plotly
我正在使用 Plotly 制作时间序列图,但是 x 轴的标签太多。我做了一些研究,我认为我可以使用 Rangebreaks 来帮助解决这个问题,但我不确定。理想情况下,我希望 x 轴标签更少。我将在下面公开我的代码。
import pandas as pd
import yfinance as yf
import datetime as dt
import plotly.graph_objects as go
#Initial data & get dataframe
start = dt.date(2022,3,1)
end = dt.date(2022,3,7)
ticker = 'SPY'
df = yf.download(ticker,start,end,progress=False,interval='1m')
#Make Graph
fig = go.Figure()
fig.add_trace(go.Scatter(
x=df.index,
y=df['Adj Close'],
mode='lines'))
fig.update_layout(xaxis={'type':'category'})
fig.show()
图表如下所示:
我确实更改了我的代码中的 x 轴类型,但这样做是有原因的,以防止我的图形在其中有很大的间隙,如下所示:
- 查看数据,交易从下午 4 点到 9:30am
关闭
- 这个可以简单排除:
fig.update_xaxes(
rangebreaks=[
dict(bounds=[16, 9.5], pattern="hour"), # hide hours from 4pm to 9:30am
]
)
完整代码
import pandas as pd
import yfinance as yf
import datetime as dt
import plotly.graph_objects as go
# Initial data & get dataframe
start = dt.date(2022, 3, 1)
end = dt.date(2022, 3, 7)
ticker = "SPY"
df = yf.download(ticker, start, end, progress=False, interval="1m")
# Make Graph
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df["Adj Close"], mode="lines"))
# fig.update_layout(xaxis={'type':'category'})
fig.update_xaxes(
rangebreaks=[
dict(bounds=[16, 9.5], pattern="hour"), # hide hours from 4pm to 9:30am
]
)
输出
我正在使用 Plotly 制作时间序列图,但是 x 轴的标签太多。我做了一些研究,我认为我可以使用 Rangebreaks 来帮助解决这个问题,但我不确定。理想情况下,我希望 x 轴标签更少。我将在下面公开我的代码。
import pandas as pd
import yfinance as yf
import datetime as dt
import plotly.graph_objects as go
#Initial data & get dataframe
start = dt.date(2022,3,1)
end = dt.date(2022,3,7)
ticker = 'SPY'
df = yf.download(ticker,start,end,progress=False,interval='1m')
#Make Graph
fig = go.Figure()
fig.add_trace(go.Scatter(
x=df.index,
y=df['Adj Close'],
mode='lines'))
fig.update_layout(xaxis={'type':'category'})
fig.show()
图表如下所示:
我确实更改了我的代码中的 x 轴类型,但这样做是有原因的,以防止我的图形在其中有很大的间隙,如下所示:
- 查看数据,交易从下午 4 点到 9:30am 关闭
- 这个可以简单排除:
fig.update_xaxes(
rangebreaks=[
dict(bounds=[16, 9.5], pattern="hour"), # hide hours from 4pm to 9:30am
]
)
完整代码
import pandas as pd
import yfinance as yf
import datetime as dt
import plotly.graph_objects as go
# Initial data & get dataframe
start = dt.date(2022, 3, 1)
end = dt.date(2022, 3, 7)
ticker = "SPY"
df = yf.download(ticker, start, end, progress=False, interval="1m")
# Make Graph
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df["Adj Close"], mode="lines"))
# fig.update_layout(xaxis={'type':'category'})
fig.update_xaxes(
rangebreaks=[
dict(bounds=[16, 9.5], pattern="hour"), # hide hours from 4pm to 9:30am
]
)