Plotly:如何在图形上只显示今天的数据?

我在 X 轴上使用时间轴制作了一个图表,但我只想显示今天的数据。(即限制日期为当前日期)


这是我用来生成这些图表的代码:


fig = go.Figure()

fig = make_subplots(rows=2,cols=1,shared_xaxes=True,vertical_spacing=0.02)

fig.add_trace(go.Scatter(x=data['time'],y=data['x_last_recorded'],name='xyz',mode='lines+markers'),row=2,col=1)

fig.add_trace(go.Scatter(x=predict_data['time'],y=predict_data['x1_last_recorded'],name='x1yz',mode='lines'),row=2,col=1)


fig.update_layout(height=800,width=1500,title='first_graph',yaxis_title='Values')

这让我得到了一张我想要的图表,但它显示了数据框中存在的所有日期。如何只获取当前日期的数据?时间结构:dd-mm-yyyy hh:mm


牧羊人nacy
浏览 95回答 1
1回答

慕尼黑8549860

我们可以通过使用诸如 之类的方法对您的数据框进行子集化来解决您的挑战df_current = df[df.index.date==df.index.date[-1]],然后通过让不同的子集由下拉菜单中的不同选项表示来重新设计您的图形。这是不同子集/选择选项的结果图:所有日期当前日期完整代码:# importsimport plotly.graph_objects as goimport pandas as pdimport numpy as np# sample data in the form of an hourltnp.random.seed(1234)tseries = pd.date_range("01.01.2020", "01.04.2020", freq="H")data = np.random.randint(-10, 12, size=(len(tseries), 2))df = pd.DataFrame(index=tseries, data=data)df.drop(df.tail(1).index,inplace=True)df.columns=list('AB')df.iloc[0]=0df=df.cumsum()# subset methoddf_current = df[df.index.date==df.index.date[-1]]# plotly setupfig = go.Figure()# set up a trace for each column in a dataframefor col in df.columns:    fig.add_trace(go.Scatter(x=df.index, y =df[col], name=col))# container for updatemenus and buttonsupdatemenu = []buttons = []# button 1buttons.append(dict(method='restyle',                    label='All',                    visible=True,                    args=[{'y':[df[col].values for col in df.columns],                           'x':[df.index],                           'type':'scatter'}, ],))# button 2buttons.append(dict(method='restyle',                    label='Current',                    visible=True,                    args=[{'y':[df_current[col].values for col in df_current.columns],                           'x':[df_current.index],                           'type':'scatter'}, ],))# menu setupyour_menu = dict()updatemenu.append(your_menu)updatemenu.append(your_menu)updatemenu[0]['buttons'] = buttonsupdatemenu[0]['direction'] = 'down'updatemenu[0]['showactive'] = True# add dropdown menus to the figurefig.update_layout(showlegend=False, updatemenus=updatemenu)fig.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python