mathiassandnes Claude Opus 4.6 commited on
Commit
46d2ac4
·
1 Parent(s): 0b848ad

Fix Logistics view grade chart: horizontal bars matching Design view

Browse files
Files changed (1) hide show
  1. app.py +28 -15
app.py CHANGED
@@ -686,18 +686,24 @@ elif selected_view == "Design":
686
  "Refurb Cost": [int(d_repair_cost * 0.25), int(d_repair_cost), config["costs"]["refurbishment"]["grade_c"]],
687
  })
688
 
 
 
 
 
689
  fig_grades = go.Figure()
690
  fig_grades.add_trace(go.Bar(
691
- x=grades_df["Grade"],
692
- y=grades_df["Percentage"],
693
- marker_color=[COLORS["positive"], COLORS["warning"], COLORS["negative"]],
694
- text=[f"{v:.1f}%" for v in grades_df["Percentage"]],
 
695
  textposition="outside",
696
  ))
697
  fig_grades.update_layout(
698
  title="Return Grade Distribution", showlegend=False,
699
- xaxis=dict(type="category"), yaxis_title="% of Returns",
700
- yaxis=dict(autorange=True), hovermode="closest",
 
701
  )
702
  st.plotly_chart(fig_grades, use_container_width=True, config={"displayModeBar": False})
703
 
@@ -785,8 +791,9 @@ elif selected_view == "Design":
785
  fig_gauge = go.Figure(go.Indicator(
786
  mode="gauge+number",
787
  value=functional_pct,
788
- number={"suffix": "%", "font": {"size": 24}},
789
  title={"text": f"Cycle {cycle_num}", "font": {"size": 14}},
 
790
  gauge={
791
  "axis": {"range": [0, 100], "tickwidth": 1},
792
  "bar": {"color": gauge_color},
@@ -801,8 +808,8 @@ elif selected_view == "Design":
801
  },
802
  ))
803
  fig_gauge.update_layout(
804
- height=200,
805
- margin=dict(t=40, b=10, l=20, r=20),
806
  )
807
  with col:
808
  st.plotly_chart(fig_gauge, use_container_width=True)
@@ -844,18 +851,24 @@ elif selected_view == "Logistics":
844
  "Refurb Cost": [refurb_a, refurb_b, config["costs"]["refurbishment"]["grade_c"]],
845
  })
846
 
 
 
 
 
847
  fig_grades = go.Figure()
848
  fig_grades.add_trace(go.Bar(
849
- x=grades_df["Grade"],
850
- y=grades_df["Percentage"],
851
- marker_color=[COLORS["positive"], COLORS["warning"], COLORS["negative"]],
852
- text=[f"{v:.0f}%" for v in grades_df["Percentage"]],
 
853
  textposition="outside",
854
  ))
855
  fig_grades.update_layout(
856
  title="Return Grade Distribution", showlegend=False,
857
- xaxis=dict(type="category"), yaxis_title="% of Returns",
858
- yaxis=dict(autorange=True), hovermode="closest",
 
859
  )
860
  st.plotly_chart(fig_grades, use_container_width=True, config={"displayModeBar": False})
861
 
 
686
  "Refurb Cost": [int(d_repair_cost * 0.25), int(d_repair_cost), config["costs"]["refurbishment"]["grade_c"]],
687
  })
688
 
689
+ grade_labels = ["C (Scrap)", "B (Repair needed)", "A (Clean only)"]
690
+ grade_values = [d_grade_c_pct * 100, d_grade_b_pct * 100, d_grade_a_pct * 100]
691
+ grade_colors = [COLORS["negative"], COLORS["warning"], COLORS["positive"]]
692
+
693
  fig_grades = go.Figure()
694
  fig_grades.add_trace(go.Bar(
695
+ y=grade_labels,
696
+ x=grade_values,
697
+ orientation="h",
698
+ marker_color=grade_colors,
699
+ text=[f"{v:.1f}%" for v in grade_values],
700
  textposition="outside",
701
  ))
702
  fig_grades.update_layout(
703
  title="Return Grade Distribution", showlegend=False,
704
+ xaxis=dict(range=[0, 105], title="% of Returns"),
705
+ yaxis=dict(type="category"),
706
+ height=250, hovermode="closest",
707
  )
708
  st.plotly_chart(fig_grades, use_container_width=True, config={"displayModeBar": False})
709
 
 
791
  fig_gauge = go.Figure(go.Indicator(
792
  mode="gauge+number",
793
  value=functional_pct,
794
+ number={"suffix": "%", "font": {"size": 22}, "valueformat": ".0f"},
795
  title={"text": f"Cycle {cycle_num}", "font": {"size": 14}},
796
+ domain={"x": [0, 1], "y": [0, 1]},
797
  gauge={
798
  "axis": {"range": [0, 100], "tickwidth": 1},
799
  "bar": {"color": gauge_color},
 
808
  },
809
  ))
810
  fig_gauge.update_layout(
811
+ height=220,
812
+ margin=dict(t=50, b=0, l=20, r=20),
813
  )
814
  with col:
815
  st.plotly_chart(fig_gauge, use_container_width=True)
 
851
  "Refurb Cost": [refurb_a, refurb_b, config["costs"]["refurbishment"]["grade_c"]],
852
  })
853
 
854
+ l_grade_labels = ["C (Scrap)", "B (Refurbish)", "A (Reusable)"]
855
+ l_grade_values = [grade_c_pct * 100, grade_b_pct * 100, grade_a_pct * 100]
856
+ l_grade_colors = [COLORS["negative"], COLORS["warning"], COLORS["positive"]]
857
+
858
  fig_grades = go.Figure()
859
  fig_grades.add_trace(go.Bar(
860
+ y=l_grade_labels,
861
+ x=l_grade_values,
862
+ orientation="h",
863
+ marker_color=l_grade_colors,
864
+ text=[f"{v:.0f}%" for v in l_grade_values],
865
  textposition="outside",
866
  ))
867
  fig_grades.update_layout(
868
  title="Return Grade Distribution", showlegend=False,
869
+ xaxis=dict(range=[0, 105], title="% of Returns"),
870
+ yaxis=dict(type="category"),
871
+ height=250, hovermode="closest",
872
  )
873
  st.plotly_chart(fig_grades, use_container_width=True, config={"displayModeBar": False})
874