问题描述
我有以下代码,我是 Plotly、dash 和 Pandas 的新手,所以我希望有人能够帮助我。我追求三件事:
我希望有人能够帮助我。谢谢
import pandas as pd
from dash import Dash
import dash_html_components as html
import numpy as np
import dash_core_components as dcc
import plotly.express as px
from dash.dependencies import Output,Input
df1 = pd.read_csv("maths-test.csv")
df2 = pd.read_csv("reading-test.csv")
df1 = df1.rename(columns={"score":"scoreMaths"})
df2 = df2.rename(columns={"score":"scoreReading"})
#df = df1.copy()
df = df1.merge(df2,on='ID')
#How to show those who dont match Todo: df1[~(df1['ID']==df2['ID'])]
#Then for the ID from df2 df2[~(df1['ID']==df2['ID'])]
#id_not_in_df1 = df1[~(df1['ID']==df2['ID'])]
#id_not_in_df2 = df2[~(df1['ID']==df2['ID'])]
#print(id_not_in_df1)
Index_by_username = df.set_index("ID")
sorted_df = df.sort_values(by="ID")
Person = pd.concat([df['ID']]).unique()
app = Dash("my app")
app.layout = html.Div([
html.H1("Graph Analysis of Person Data."),dcc.Dropdown(
id="option",options=[{"label":str(i),"value":i} for i in df["ID"]],value=df["ID"][0]
),dcc.Graph(id="chart")
])
##############################
Test Functions - Map
##############################
def SetColor(y):
if(y <= 1):
return "red"
elif(y <= 2):
return "orange"
elif(y <= 3):
return "yellow"
elif(y <= 4):
return "lightgreen"
elif(y <= 5 or y <= 6):
return "green"
elif(y <= 7):
return "darkgreen"
elif(y <= 8):
return "silver"
elif(y <= 9):
return "gold"
def Setlabel(y):
if(y <= 1):
return "Very low (1)"
elif(y <= 2):
return "Low (2)"
elif(y <= 3):
return "Below average (3)"
elif(y <= 4):
return "Average (4)"
elif(y <= 5 or y<= 6):
return "Average (5,6)"
elif(y <= 7):
return "Above average (7)"
elif(y <= 8):
return "High (8)"
elif(y <= 9):
return "Very High (9)"
labels = ['Very low (1)','Low','Below average (3)','Average(4)','Adverage (5,6)','Above average (7)','High (8)','Very High (9)']
colors = {'Very low (1)': 'red','Low (2)': 'orange','Below average (3)': 'yellow','Average (4)': 'lightgreen','Average (5,6)': "green",'Above average (7)': 'darkgreen','High (8)': 'silver','Very High (9)': 'gold'}
color_map = {
1: 'red',2: 'orange'
}
#######################################
@app.callback(
Output(component_id="chart",component_property="figure"),Input(component_id="option",component_property="value"))
def on_option(option):
trace3 = px.bar(x = df["ID"],y = df["scoreMaths"])
return px.bar(df,x=df["ID"],y=df['scoreReading'],color_discrete_map={
2 :"#0064FF",4:"rgba(0,100)","3":"#0064FF"}).update_yaxes(title_text="<b>secondary</b> yaxis title",secondary_y=True).add_trace(df['scoreMaths'],secondary_y=True)
#.update_traces(marker = dict(color=list(map(SetColor,df['scoreReading']))))#
#.update_traces(marker = dict(color=list(map(SetColor,df['scoreReading']))))
#px.bar(df,y=df["scoreReading"],facet_col=df["scoreMaths"]
#.update_traces(color=color_map[df['scoreReading'].to_ceil])
#.update_traces(marker = dict(color=list(map(SetColor,df['scoreReading'])))).update_layout(legend = dict(list(map(Setlabel[df['score']]))))
#.update_layout(font_family="Rockwell",marker=dict(colors[labels]))
#color_continuous_scale="Viridis",range_color=(0,7))
if __name__ =='__main__':
app.run_server()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)