def update_columns2(n_clicks, ddvalues, dfdata, dd1class, dd1value, dd2class, dd2value, ): if n_clicks < 1: print("no drop down values") return [] else: list1 = [] list2 = [] list1.append(dd1class) list1.append(dd2class) list2.append(dd1value) list2.append(dd2value) zipped = zip(list1, list2) d = dict(zipped) all_pairs = [{j: d[j] for j in i} for i in it.combinations(d, 2)] data_pairsv = [] data_pairsk = [] data_pairsv1 = [] data_pairsk1 = [] for p in all_pairs: # print(list(p.values())) data_pairsv.append(list(p.values())) for p in all_pairs: # print(list(p.keys())) data_pairsk.append(list(p.keys())) for v in data_pairsv: data_pairsv1.append('vs'.join(v)) for k in data_pairsk: data_pairsk1.append('vs'.join(k)) zippedpairs = zip(data_pairsk1, data_pairsv1) finalpairs = dict(zippedpairs) for k,v in finalpairs.items(): if v == "CATvsVAL": a = dt.decision([1,1,0,0,0,0]) elif v == "CATvsLATvsLON": a = dt.decision([1,0,0,1,0,0]) elif v == "LOCvsVAL": a = dt.decision([1,0,0,1,0,0]) elif v == "DTEvsVAL": a = dt.decision([1,0,0,0,1,0]) elif v == "VALvsVAL": a = dt.decision([1,0,0,0,0,1]) elif v == "VALvsBOL" or v == "CATvsBOL": a = dt.decision([1,0,1,0,0,0]) else: a = "None" finalpairs[k] = a[0] # print(finalpairs) for k,v in list(finalpairs.items()): if v == "N": del finalpairs[k] print(finalpairs) df = pd.read_json(dfdata) charts = [] chartnum = 0 for k,v in finalpairs.items(): gcol = k.split('vs') xcol = gcol[0] ycol = gcol[1] xval = df[xcol] yval = df[ycol] chartnum+=1 if v == "Bar": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.bar_function(xval,yval))) elif v == "Map": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.map_function(xval,yval))) elif v == "Rings": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.rings_function(xval,yval))) elif v == "Bubble": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.bubble_function(xval,yval))) elif v == "Table": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.table_function(xval,yval))) elif v == "Scatter": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.scatter_function(xval,yval))) elif v == "Pie": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.pie_function(xval,yval))) elif v == "Line": charts.append(dcc.Graph(id=f'auto-graph{chartnum}', figure=cl.line_function(xval,yval))) return charts
]) external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css'] app = dash.Dash(__name__, external_stylesheets=external_stylesheets) app.layout = html.Div(children=[ html.H1(children='Generate Charts Based on Actual User Feedback'), html.Div(children=''' Select Which Columns you would like to be graphed '''), html.Div(generate_table(df)), dcc.Graph(id='example-graph', figure=cl.pie_function(a, b)), dcc.Graph(id='example-graph1', figure=cl.bar_function(c, b)), dcc.Graph(id='example-graph2', figure=cl.line_function(c, b)), dcc.Graph(id='example-graph3', figure=cl.scatter_function(c, b)), dcc.Graph(id='example-graph4', figure=cl.bubble_function(a, b)), dcc.Graph( id='example-graph5', figure=cl.map_function(a, b) # ), # dcc.Graph( # id='example-graph6', # children = cl.chart_function(a,b) ) ]) if __name__ == '__main__': app.run_server(debug=True)