标签: plotly-dash-datatable

Dash 应用程序中数据表值发生变化后回调触发的绘图更新

我的布局中有一个地图和数据表组件,可以通过回调进行更新。数据表是可编辑的,用户可以向新表添加新信息。更新表的点击事件时

我有两个回调,一个用于更新地图,另一个用于数据表。我想做的是从数据表回调内部运行地图回调。基本上,我想根据数据表的值更新地图。

我可以从回调运行另一个回调或在另一个回调中运行某些代码行吗?试图找出一种优雅而有效的方法来做到这一点。

layout = html.Div([

                # Plot map
                dcc.Graph(id="map-graph"),

                # DataTable
                dash_table.DataTable(

                    id="table",

                    columns=[{"id":"Type","name":"Type"},
                                   {"id":"space","name": "space"}],

                    sort_action="native",
                    filter_action="native",
                    row_deletable=True
                ),

                # Update map
                dbc.Button("Update map", id="update-map", className="mr-1"),

                # Update Table
                dbc.Button("Update table", id="update-table", className="mr-1")

 
            ]), 


     # Callbacks 

    # Update map
    @app.callback(Output("map-graph", "figure"),
                          [Input("update-map", "value")])
    def updatemap(value):

         ...
         do something
         ...

         return value

 
    # Update table
    @app.callback(Output("table", "data"),
                          [Input("update-table", "value")])
    def updatetable(value):

         ...
         do something
         ...

         # Run the code inside previous callback which updates the map. 

         return rows
Run Code Online (Sandbox Code Playgroud)

python plotly plotly-dash plotly-dash-datatable

7
推荐指数
1
解决办法
1万
查看次数

具有可展开/可折叠行的 Dash 数据表

与 qtTree 类似,我想深入了解数据表的列。我想用一个例子可以更好地说明这一点。假设我们有一个包含三列的数据框:国家/地区、城市、人口,例如:

Country    City        Population
USA        New-York    19MM
China      Shanghai    26MM
China      Beijing     20MM
USA        Los Angeles 12MM
France     Paris       11MM
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以在虚线图数据表中理想地呈现这些数据,如下所示:

Country    City        Population
+USA                   31MM
 /---->    New-York    19MM
 /---->    Los Angeles 12MM
+China                 46MM
 /---->    Shanghai    26MM
 /---->    Beijing     20MM
+France                11MM
 /---->    Paris       11MM
Run Code Online (Sandbox Code Playgroud)

分组国家/城市将展开(或者可能在单击行 -?- 时隐藏/显示)。在国家一级,人口将是其选民的总和,在城市一级,人口将是来自该城市的人口。

库 dash_treeview_antd 允许树视图表示,但我不知道如何包含人口列。也许有一种更简单的方法,首先在 pandas 中进行 groupby,然后进行回调来隐藏/显示当前行选择/单击?

编辑:

我一直在玩弄.groupbypandas 和回调中的' active_cell' Dash DataTable 属性。

def defineDF():
    df = pd.DataFrame({'Country': ['USA', 'China', 'China', 'USA', 'France'],
                   'City': ['New-York', …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas plotly-dash plotly-dash-datatable

6
推荐指数
1
解决办法
2673
查看次数