[英]Removing gaps between data on a Plotly graph
我試圖制作一個圖表來繪制股票價格的時間序列數據。 然而,市場僅在 9:30-16:00 開放,但圖表會自動繪制市場未開放的時間。 這導致數據點之間的圖表上有大線,這在我附上的圖片中應該更明顯。 如果有人可以幫助解決這個問題,我將不勝感激。
import pandas as pd
import datetime as dt
import yfinance as yf
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.show()
如果您將 nans 插入到 dataframe 中,其中存在很長的時間間隔,這可能會給出您想要的結果。
import pandas as pd
import datetime as dt
import yfinance as yf
import plotly.graph_objects as go
import numpy as np
#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')
# Specify minimum time gap in nanoseconds.
TIME_GAP = 60000000000
# get an index array where there is a time gap
gap_idx = np.where(np.diff(df.index.astype(int)) > TIME_GAP)[0]
df = df.reset_index()
# use numpy to insert nans
df = pd.DataFrame(
columns = df.columns,
data = np.insert(df.values, gap_idx+1, values=np.nan, axis=0)
)
df = df.set_index('Datetime')
#Make Graph
fig = go.Figure()
fig.add_trace(go.Scatter(
x=df.index,
y=df['Adj Close'],
mode='lines'))
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.