DrishtiSharma commited on
Commit
cd9789b
Β·
verified Β·
1 Parent(s): f07f50d

Update mylab/fixed_font_issue.py

Browse files
Files changed (1) hide show
  1. mylab/fixed_font_issue.py +53 -0
mylab/fixed_font_issue.py CHANGED
@@ -179,6 +179,59 @@ def create_text_report_with_viz_temp(report, conclusion, visualizations):
179
  return temp_txt.name
180
 
181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  # Function to create PDF with report text and visualizations
183
  def create_pdf_report_with_viz(report, conclusion, visualizations):
184
  pdf = FPDF()
 
179
  return temp_txt.name
180
 
181
 
182
+ def add_stats_to_figure(fig, df, y_axis, chart_type):
183
+ # Calculate statistics
184
+ min_val = df[y_axis].min()
185
+ max_val = df[y_axis].max()
186
+ avg_val = df[y_axis].mean()
187
+ median_val = df[y_axis].median()
188
+ std_dev_val = df[y_axis].std()
189
+
190
+ # Stats summary text
191
+ stats_text = (
192
+ f"πŸ“Š **Statistics**\n\n"
193
+ f"- **Min:** ${min_val:,.2f}\n"
194
+ f"- **Max:** ${max_val:,.2f}\n"
195
+ f"- **Average:** ${avg_val:,.2f}\n"
196
+ f"- **Median:** ${median_val:,.2f}\n"
197
+ f"- **Std Dev:** ${std_dev_val:,.2f}"
198
+ )
199
+
200
+ # Charts suitable for stats annotations
201
+ if chart_type in ["bar", "line", "scatter"]:
202
+ # Add annotation box
203
+ fig.add_annotation(
204
+ text=stats_text,
205
+ xref="paper", yref="paper",
206
+ x=1.05, y=1,
207
+ showarrow=False,
208
+ align="left",
209
+ font=dict(size=12, color="black"),
210
+ bordercolor="black",
211
+ borderwidth=1,
212
+ bgcolor="rgba(255, 255, 255, 0.8)"
213
+ )
214
+
215
+ # Add horizontal lines for min, median, avg, max
216
+ fig.add_hline(y=min_val, line_dash="dot", line_color="red", annotation_text="Min", annotation_position="bottom right")
217
+ fig.add_hline(y=median_val, line_dash="dash", line_color="orange", annotation_text="Median", annotation_position="top right")
218
+ fig.add_hline(y=avg_val, line_dash="dashdot", line_color="green", annotation_text="Avg", annotation_position="top right")
219
+ fig.add_hline(y=max_val, line_dash="dot", line_color="blue", annotation_text="Max", annotation_position="top right")
220
+
221
+ elif chart_type == "box":
222
+ # Box plots already show distribution (no extra stats needed)
223
+ pass
224
+
225
+ elif chart_type == "pie":
226
+ # Pie charts don't need statistical overlays
227
+ st.info("πŸ“Š Pie charts focus on proportions. No additional stats displayed.")
228
+
229
+ else:
230
+ st.warning(f"⚠️ No stats added for unsupported chart type: {chart_type}")
231
+
232
+ return fig
233
+
234
+
235
  # Function to create PDF with report text and visualizations
236
  def create_pdf_report_with_viz(report, conclusion, visualizations):
237
  pdf = FPDF()