Plotly Dash:dcc.RadioItems 垂直对齐

Posted

技术标签:

【中文标题】Plotly Dash:dcc.RadioItems 垂直对齐【英文标题】:Plotly Dash: dcc.RadioItems vertical alignment 【发布时间】:2020-09-20 01:32:31 【问题描述】:

我想垂直对齐dash_core_components.RadioItems 的所有选项。 根据dash documentation,默认行为应包括RadioItems 选项的垂直对齐。如果您想水平对齐选项,则必须指定:

labelStyle='display': 'inline-block'

相反,作为默认行为,我得到一个水平对齐,但我不知道要指定什么作为display 项目来获得RadioItems 选项的垂直对齐。 这是我到目前为止的尝试:

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output

app = dash.Dash()

app.layout = html.Div([dcc.RadioItems(id = 'input-radio-button',
                                      options = [dict(label = 'A', value = 'A'),
                                                 dict(label = 'B', value = 'B')],
                                      value = 'A'),
                       html.P(id = 'output-text')])


@app.callback(Output('output-text', 'children'),
              [Input('input-radio-button', 'value')])
def update_graph(value):
    return f'The selected value is value'


if __name__ == "__main__":
    app.run_server()

我得到了什么:

我想得到这样的结果(图像手动编辑):

我在提到这个问题的地方找到了this reference。在那里,建议通过引用外部样式表来解决它。如果可能的话,我想通过在 RadioItems 元素的定义中指定正确的选项来避免这种转变并解决它。

版本信息:

Python  3.7.0
dash    1.12.0
plotly  4.7.0

【问题讨论】:

【参考方案1】:

您可以将labelStyle='display': 'block' 属性传递给dcc.RadioItems() 以便垂直对齐不同的选项,但我建议您遵循Dash 社区论坛中的建议,即始终链接Dash CSS 文件bWLwgP.css .

【讨论】:

非常感谢!问题是我已经使用了这个样式表:app = dash.Dash(external_stylesheets = [dbc.themes.BOOTSTRAP])。我可以管理两个不同的样式表吗? 是的,您可以包含多个样式表,即使某些属性可能会相互覆盖。对于您的情况,这似乎没问题,如果我使用app = dash.Dash(external_stylesheets = [dbc.themes.BOOTSTRAP, 'https://codepen.io/chriddyp/pen/bWLwgP.css']) 运行上面的代码,则单选项目选项将自动垂直对齐(即不添加labelStyle='display': 'block')。 非常感谢!

以上是关于Plotly Dash:dcc.RadioItems 垂直对齐的主要内容,如果未能解决你的问题,请参考以下文章

使用 plotly-dash 上传文件

Plotly (Dash) 勾选标签覆盖

Plotly-dash 图不显示值

Plotly-Dash 实时图表:回调失败

如何命名 Dash/Plotly 中的下拉菜单

Plotly-Dash:反应迟钝的情节