为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 for 循环在 Dash + Python 中显示多个图表?

如何使用 for 循环在 Dash + Python 中显示多个图表?

翻阅古今 2021-11-30 15:39:28
我正在尝试使用循环打印图表。数据在一个列表中。这是我的代码当前的外观(我在 for 循环中收到语法错误):import dashimport dash_core_components as dccimport dash_html_components as htmlimport pandas as pdimport plotly.graph_objs as godfs = [pd.DataFrame({"xaxis":["thing","otherthing","anotherthing"],"yaxis":[64,14,62]}),pd.DataFrame({"xaxis":["newthing","newotherthing","newanotherthing"],"yaxis":[344,554,112]})]external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']app = dash.Dash(__name__, external_stylesheets=external_stylesheets)g = 0app.layout = html.Div(children=[    for df in dfs:        dcc.Graph(id='example-graph'+str(g),figure={'data': [go.Bar(x=df['xaxis'],y=df[("yaxis")],name="yaxis")]})    ]    g = g + 1)if __name__ == '__main__':    app.run_server(debug=True)我希望它看起来像这样: 我该怎么做呢?
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

该children属性基本上是一个列表,您可以先在通用循环中生成列表,然后将其添加到 Div 中。


这是工作片段,


import dash

import dash_core_components as dcc

import dash_html_components as html

import pandas as pd

import plotly.graph_objs as go


df1 = pd.DataFrame({"xaxis":["thing","otherthing","anotherthing"],"yaxis":[64,14,62]})

df2 = pd.DataFrame({"xaxis":["newthing","newotherthing","newanotherthing"],"yaxis":[344,554,112]})

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)



output = []

#here you can define your logic on how many times you want to loop

for i in range(0,2): 

     output.append(dcc.Graph(id='example-graph'+str(i),figure={'data': [go.Bar(x=df1['xaxis'],y=df1[("yaxis")],name="yaxis")]}))



app.layout = html.Div(children=output)


if __name__ == '__main__':

    app.run_server(debug=True)


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信