Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 一次回调中的两个日期选择器_Python_Plotly_Plotly Dash - Fatal编程技术网

Python 一次回调中的两个日期选择器

Python 一次回调中的两个日期选择器,python,plotly,plotly-dash,Python,Plotly,Plotly Dash,我试图在一个回调中设置两个日期选择器,其目的是创建一个包含两个数据帧的绘图,其中一个对应于第一个下拉列表中的过滤器,第二个接受第二个日期过滤器的输入 我有以下代码:(我只想放一部分代码,因为它相当大) 这就是我试图创建情节的地方: @app.callback(Output(component_id='product_graph', component_property='figure'), [Input('periodo_sel','start_date'),

我试图在一个回调中设置两个日期选择器,其目的是创建一个包含两个数据帧的绘图,其中一个对应于第一个下拉列表中的过滤器,第二个接受第二个日期过滤器的输入

我有以下代码:(我只想放一部分代码,因为它相当大)

这就是我试图创建情节的地方:

@app.callback(Output(component_id='product_graph', component_property='figure'),
              [Input('periodo_sel','start_date'),
               Input('periodo_sel','end_date'),
               Input('periodo_sel2','start_date'),
               Input('periodo_sel2','end_date'),
               Input('periodo_sel','end_date'),
               Input('temp_select','value'),
               Input('product_select','value')])

def product_plot(start_date, end_date, temp_select, product_select):
    """
    Here is where the problem begins, because I don't know how to set a "start2" and "end2", if          you see, period has only start and end as property, so when I'm trying to set the second period it becomes redundant and takes the input of the first output
    """
    start = pd.to_datetime(start_date)
    end = pd.to_datetime(end_date)
    
    start2 = pd.to_datetime(?????)
    end2 = pd.to_datetime(?????)
    

....

我刚刚解决了这个问题,我让它工作起来了

您需要在每个日期选择器上使用id,才能在回调中使用其值。这就是全部。 只需查看以下代码:

在仪表板会话上:

dcc.DatePickerSingle(
    id='date_start',
    date=dt.today(),
    ),
dcc.DatePickerSingle(
    id='date_end',
    date=dt.today(),
    ),
dcc.Graph(id='my_plot')
在回调会话上:

@application.callback(
    Output('my_plot', 'figure'),
    [
        Input('date_start', 'date'),
        Input('date_end', 'date'),
    ]
)
def make_plot_callback(date_start, date_end):
    print(date_start, date_end)
    fig = make_plot(date_start, date_end) # define this for creating yr plot

    return fig

我刚刚解决了这个问题,我让它工作起来了

您需要在每个日期选择器上使用id,才能在回调中使用其值。这就是全部。 只需查看以下代码:

在仪表板会话上:

dcc.DatePickerSingle(
    id='date_start',
    date=dt.today(),
    ),
dcc.DatePickerSingle(
    id='date_end',
    date=dt.today(),
    ),
dcc.Graph(id='my_plot')
在回调会话上:

@application.callback(
    Output('my_plot', 'figure'),
    [
        Input('date_start', 'date'),
        Input('date_end', 'date'),
    ]
)
def make_plot_callback(date_start, date_end):
    print(date_start, date_end)
    fig = make_plot(date_start, date_end) # define this for creating yr plot

    return fig

Hi erickfis thnaks用于回答,问题是我正在寻找的是将两个不同的图放在一个图中(作为子图),其中每个图在同一回调中采用不同的开始/结束日期,您的解决方案与我自己的解决方案相同Hi erickfis thnaks用于回答,问题是我正在寻找的是将两个不同的图放在一个图中(作为子图)它们在同一个回调中采用不同的开始/结束日期,并且您的解决方案与我的解决方案的工作原理相同