问题描述
我有一个 Sankey 图表,它是使用 Plotly 的 Python 库创建的,它还有 “Updatemenus” 来调整图形的高度和宽度。 现在我将它与 Dash 一起使用,以使用回调并根据一些单选按钮值更新 Sankey 配色方案。 我面临两个不同的问题:
一个,当我使用回调来更新 Sankey 时,它是用默认的高度/宽度创建的,有没有办法将当前的大小作为Dash回调的输入 >?因此,当使用 Plotly 的“更新菜单”更改图形大小时,如果我使用单选按钮回调,则通过单选按钮回调更新的新 Sankey 使用更新后的高度和宽度,并且不会返回默认宽度和高度。
二,我正在使用 Sankey 图表下方的单选按钮(作为单独的 dcc.graph 对象),用于更新 Sankey 图表的颜色方案(也使用 Dash 回调)。当我使用 Plotly 的更新菜单增加宽度时,我还想根据 Sankey 图中节点的新位置更改单选按钮的位置。
是否可以有 Dash 应用程序的动态布局,当 Sankey 的宽度发生变化时,它会更新单选按钮的位置。我想到了 'updatemenus' 中三种不同宽度选项的 3 种不同布局(单选按钮的自定义位置),并在回调中使用图形宽度作为输入,以便在更改 sankey 宽度时更新布局。
我需要以某种方式将 Sankey 图形的当前高度/宽度作为破折号回调的输入,以便单选按钮回调不会将更新的宽度更改为默认宽度/高度,并且我可以使用带有更新宽度的回调/高度。
而且我需要一个动态布局,布局作为当前宽度的函数,这样当桑基的宽度用更新菜单更新时,我也可以缩放单选按钮,即不同宽度的单选按钮的不同静态位置桑基。
app.layout = html.Div(
[
html.Div([dcc.Graph(id="my-sankey",figure={})]),html.Div(
dcc.RadioItems(
id="color_radio_button",options=color_layers,value="EN Category",style={
"display": "flex","justify-content": "space-between","align-items": "center","width": "82%","margin-left": "177px",},)
),],style={"justify-content": "center"})
这是回调的样子:
@app.callback(
Output(component_id="my-sankey",component_property="figure"),Input(component_id='color_radio_button',component_property="value"))
def create_sankey(value):
return my_sankey.create_sankey(color_layer_column_label=value)
非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)