Python 网格仪表板,带绘图破折号
我试图用Dash构建一个仪表板,仪表板由一系列平铺文本组成,如下图所示 我正在尝试构建一个组件以重用它,并构建下面的布局。每个框将包含标题、值和说明,如下所示 有可用的组件吗?有人能帮我一些基本的想法/代码吗 提前谢谢Python 网格仪表板,带绘图破折号,python,html,css,plotly,plotly-dash,Python,Html,Css,Plotly,Plotly Dash,我试图用Dash构建一个仪表板,仪表板由一系列平铺文本组成,如下图所示 我正在尝试构建一个组件以重用它,并构建下面的布局。每个框将包含标题、值和说明,如下所示 有可用的组件吗?有人能帮我一些基本的想法/代码吗 提前谢谢 我建议您查看dbc 可以使用嵌套在dbc.Row-rows组件中的dbc.columns组件生成布局。你可以去看看 然后,对于我将要调用的实际“卡片”,可以使用dbc.Card组件。这是我的建议 下面是一些复制布局的示例代码: import dash_bootstrap_comp
我建议您查看dbc 可以使用嵌套在dbc.Row-rows组件中的dbc.columns组件生成布局。你可以去看看 然后,对于我将要调用的实际“卡片”,可以使用dbc.Card组件。这是我的建议 下面是一些复制布局的示例代码:
import dash_bootstrap_components as dbc
import dash_html_components as html
card = dbc.Card(
dbc.CardBody(
[
html.H4("Title", id="card-title"),
html.H2("100", id="card-value"),
html.P("Description", id="card-description")
]
)
)
layout = html.Div([
dbc.Row([
dbc.Col([card]), dbc.Col([card]), dbc.Col([card]), dbc.Col([card]), dbc.Col([card])
]),
dbc.Row([
dbc.Col([card]), dbc.Col([card]), dbc.Col([card]), dbc.Col([card])
]),
dbc.Row([
dbc.Col([card]), dbc.Col([card])
])
])
最好的办法可能是使用一个函数创建带有ID、标题和描述参数的卡片,以避免创建不同卡片的麻烦:
def create_card(card_id, title, description):
return dbc.Card(
dbc.CardBody(
[
html.H4(title, id=f"{card_id}-title"),
html.H2("100", id=f"{card_id}-value"),
html.P(description, id=f"{card_id}-description")
]
)
)
然后,您可以随意将每张卡片替换为“id”、“标题”、“说明”
另一个快速提示是col组件有一个参数width。可以为行中的每一列指定不同的值以调整相对宽度。你可以在我上面链接的文档中了解更多
希望这有帮助
奥利我建议你检查一下dbc 可以使用嵌套在dbc.Row-rows组件中的dbc.columns组件生成布局。你可以去看看 然后,对于我将要调用的实际“卡片”,可以使用dbc.Card组件。这是我的建议 下面是一些复制布局的示例代码:
import dash_bootstrap_components as dbc
import dash_html_components as html
card = dbc.Card(
dbc.CardBody(
[
html.H4("Title", id="card-title"),
html.H2("100", id="card-value"),
html.P("Description", id="card-description")
]
)
)
layout = html.Div([
dbc.Row([
dbc.Col([card]), dbc.Col([card]), dbc.Col([card]), dbc.Col([card]), dbc.Col([card])
]),
dbc.Row([
dbc.Col([card]), dbc.Col([card]), dbc.Col([card]), dbc.Col([card])
]),
dbc.Row([
dbc.Col([card]), dbc.Col([card])
])
])
最好的办法可能是使用一个函数创建带有ID、标题和描述参数的卡片,以避免创建不同卡片的麻烦:
def create_card(card_id, title, description):
return dbc.Card(
dbc.CardBody(
[
html.H4(title, id=f"{card_id}-title"),
html.H2("100", id=f"{card_id}-value"),
html.P(description, id=f"{card_id}-description")
]
)
)
然后,您可以随意将每张卡片替换为“id”、“标题”、“说明”
另一个快速提示是col组件有一个参数width。可以为行中的每一列指定不同的值以调整相对宽度。你可以在我上面链接的文档中了解更多
希望这有帮助
奥利太酷了,谢谢!你知道我如何在Dash上直接使用HTML和CSS而不使用第三方库吗?@jack87只使用HTML和CSS会有点麻烦。你需要考虑使用html div,然后用float和clear css设计div的样式。我相信这不是100%确定的,因为我在设计dash应用程序时,尽量避免使用html。老实说,我已经开始使用dbc,就好像它是Dash的标准部分一样。除非对您进行简单的pip安装有任何限制,否则我真的建议您使用它。它清理了你的代码很多,涵盖了很多功能,这将需要单独的样式表和更先进的html技术等,这是非常酷的感谢!你知道我如何在Dash上直接使用HTML和CSS而不使用第三方库吗?@jack87只使用HTML和CSS会有点麻烦。你需要考虑使用html div,然后用float和clear css设计div的样式。我相信这不是100%确定的,因为我在设计dash应用程序时,尽量避免使用html。老实说,我已经开始使用dbc,就好像它是Dash的标准部分一样。除非对您进行简单的pip安装有任何限制,否则我真的建议您使用它。它清理了大量的代码,涵盖了许多需要单独的样式表和更高级的html技术等的功能。