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

我正在尝试使用循环打印图表。数据在一个列表中。这是我的代码当前的外观(我在 for 循环中收到语法错误):


import dash

import dash_core_components as dcc

import dash_html_components as html

import pandas as pd

import plotly.graph_objs as go


dfs = [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 = 0


app.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)

我希望它看起来像这样: 

http://img4.mukewang.com/61a5d541000144ec18380824.jpg

我该怎么做呢?



翻阅古今
浏览 133回答 1
1回答

守着一只汪

该children属性基本上是一个列表,您可以先在通用循环中生成列表,然后将其添加到 Div 中。这是工作片段,import dashimport dash_core_components as dccimport dash_html_components as htmlimport pandas as pdimport plotly.graph_objs as godf1 = 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 loopfor 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python