File size: 1,268 Bytes
8e17be6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from components.figures import build_figure
from dash import Input, Output, State, MATCH

def register_gas_plot(app, aconc, lts, prod, trace_library):

    @app.callback(
        Output({"type": "gas-figure", "key": MATCH}, "figure"),
        Input({"type": "trace-selector", "key": MATCH}, "value"),
        State("active-gas", "data"),
        State({"type": "trace-selector", "key": MATCH}, "id"),
    )
    def update_plot(selected, gas, selector_id):
        # if not selected:
        #     selected = [gas]

        fig_key = selector_id["key"]

        if fig_key == "aconc":
            if not selected:
                selected = [gas]
            return build_figure(aconc, selected, trace_library['gases'])
        elif fig_key == "lts":
            if not selected:
                selected = [gas]
            return build_figure(lts, selected, trace_library['gases'])
        elif fig_key == "prod":
            # Ensure selected is a list of valid columns
            if not selected or not any(s in prod[gas].columns for s in selected):
                selected = sorted(set(prod[gas].columns) & \
                    set(list(trace_library['production'].keys())[:-3]))
            return build_figure(prod[gas], selected, trace_library['production'])