Synav commited on
Commit
cd77cd4
·
verified ·
1 Parent(s): a51f993

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -7
app.py CHANGED
@@ -47,27 +47,42 @@ def fig_to_png_bytes(fig, dpi=600):
47
  buf.seek(0)
48
  return buf.getvalue()
49
 
50
- def render_plot_with_download(fig, *, title: str, filename: str, export_dpi: int = 600):
51
- # 1) SAVE FIRST (before any clear)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  png_bytes = fig_to_png_bytes(fig, dpi=export_dpi)
53
 
54
- # 2) DISPLAY (do NOT clear)
55
- st.pyplot(fig, clear_figure=False, use_container_width=False)
56
 
57
- # 3) DOWNLOAD
58
  st.download_button(
59
  label=f"Download {title} (PNG {export_dpi} dpi)",
60
  data=png_bytes,
61
  file_name=filename,
62
  mime="image/png",
63
- key=f"dl_{filename}"
64
  )
65
 
66
- # 4) Prevent figure leakage / overlaps
67
  plt.close(fig)
68
 
69
 
70
 
 
71
  # ============================================================
72
  # Fixed schema definition (PLACEHOLDER FRAMEWORK)
73
  # ============================================================
 
47
  buf.seek(0)
48
  return buf.getvalue()
49
 
50
+ def render_plot_with_download(
51
+ fig,
52
+ *,
53
+ title: str,
54
+ filename: str,
55
+ export_dpi: int = 600,
56
+ key: str | None = None # <-- ADD THIS
57
+ ):
58
+ """
59
+ Show compact plot + provide high-DPI PNG download.
60
+ Fixes:
61
+ • blank downloads
62
+ • figure clearing issues
63
+ • duplicate widget keys
64
+ """
65
+
66
+ # Save BEFORE any clearing
67
  png_bytes = fig_to_png_bytes(fig, dpi=export_dpi)
68
 
69
+ # Show
70
+ st.pyplot(fig, clear_figure=False, use_container_width=True)
71
 
72
+ # Download
73
  st.download_button(
74
  label=f"Download {title} (PNG {export_dpi} dpi)",
75
  data=png_bytes,
76
  file_name=filename,
77
  mime="image/png",
78
+ key=key or f"dl_{filename}"
79
  )
80
 
 
81
  plt.close(fig)
82
 
83
 
84
 
85
+
86
  # ============================================================
87
  # Fixed schema definition (PLACEHOLDER FRAMEWORK)
88
  # ============================================================