Nipun Claude commited on
Commit
b024b50
·
1 Parent(s): bc17742

Improve plot resolution and add CSV download functionality

Browse files

- Increased plot DPI from 300 to 600 for ultra-high resolution
- Enhanced matplotlib style with larger figure size (14x8)
- Added explicit high-DPI settings in code generation template
- Fixed CSV download for dataframes in Streamlit interface
- Updated system prompt with high-resolution plotting instructions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

Files changed (4) hide show
  1. app.py +15 -0
  2. new_system_prompt.txt +2 -2
  3. src.py +10 -1
  4. vayuchat.mplstyle +7 -6
app.py CHANGED
@@ -481,7 +481,22 @@ def show_custom_response(response):
481
  </div>
482
  """, unsafe_allow_html=True)
483
 
 
484
  st.dataframe(content, use_container_width=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
485
 
486
  # Show generated code with Streamlit expander
487
  if response.get("gen_code"):
 
481
  </div>
482
  """, unsafe_allow_html=True)
483
 
484
+ # Display dataframe with download option
485
  st.dataframe(content, use_container_width=True)
486
+
487
+ # Add download button for CSV
488
+ import io
489
+ csv_buffer = io.StringIO()
490
+ content.to_csv(csv_buffer, index=False)
491
+ csv_data = csv_buffer.getvalue()
492
+
493
+ st.download_button(
494
+ label="📥 Download as CSV",
495
+ data=csv_data,
496
+ file_name=f"vayuchat_data_{datetime.now().strftime('%Y%m%d_%H%M%S')}.csv",
497
+ mime="text/csv",
498
+ use_container_width=True
499
+ )
500
 
501
  # Show generated code with Streamlit expander
502
  if response.get("gen_code"):
new_system_prompt.txt CHANGED
@@ -33,8 +33,8 @@ DATA SAFETY:
33
  - Use .dropna() to remove missing values before analysis
34
 
35
  PLOTTING REQUIREMENTS:
36
- - Create plots for visualization requests: plt.figure(figsize=(12, 8))
37
- - Save plots: filename = f"plot_{uuid.uuid4().hex[:8]}.png"; plt.savefig(filename, dpi=300, bbox_inches='tight')
38
  - Close plots: plt.close()
39
  - Store filename: answer = filename
40
  - For non-plots: answer = "text result"
 
33
  - Use .dropna() to remove missing values before analysis
34
 
35
  PLOTTING REQUIREMENTS:
36
+ - Create plots for visualization requests: plt.figure(figsize=(14, 8))
37
+ - Save plots with ultra-high resolution: filename = f"plot_{uuid.uuid4().hex[:8]}.png"; plt.savefig(filename, dpi=600, bbox_inches='tight', facecolor='white', edgecolor='none')
38
  - Close plots: plt.close()
39
  - Store filename: answer = filename
40
  - For non-plots: answer = "text result"
src.py CHANGED
@@ -254,8 +254,17 @@ import seaborn as sns
254
  import uuid
255
  import calendar
256
  import numpy as np
257
- # Set professional matplotlib styling
258
  plt.style.use('vayuchat.mplstyle')
 
 
 
 
 
 
 
 
 
259
  df = pd.read_csv("AQ_met_data.csv")
260
  df["Timestamp"] = pd.to_datetime(df["Timestamp"])
261
  states_df = pd.read_csv("states_data.csv")
 
254
  import uuid
255
  import calendar
256
  import numpy as np
257
+ # Set professional matplotlib styling with high DPI
258
  plt.style.use('vayuchat.mplstyle')
259
+ # Additional high-resolution settings
260
+ plt.rcParams['figure.dpi'] = 600
261
+ plt.rcParams['savefig.dpi'] = 600
262
+ plt.rcParams['font.size'] = 14
263
+ plt.rcParams['axes.titlesize'] = 16
264
+ plt.rcParams['axes.labelsize'] = 14
265
+ plt.rcParams['xtick.labelsize'] = 12
266
+ plt.rcParams['ytick.labelsize'] = 12
267
+ plt.rcParams['legend.fontsize'] = 12
268
  df = pd.read_csv("AQ_met_data.csv")
269
  df["Timestamp"] = pd.to_datetime(df["Timestamp"])
270
  states_df = pd.read_csv("states_data.csv")
vayuchat.mplstyle CHANGED
@@ -12,11 +12,11 @@ xtick.labelsize: 11
12
  ytick.labelsize: 11
13
  legend.fontsize: 11
14
 
15
- # Figure & DPI
16
- figure.dpi: 300
17
  figure.facecolor: white
18
  figure.edgecolor: none
19
- figure.figsize: 12, 7
20
  figure.autolayout: True
21
 
22
  # Modern Color Palette (inspired by Tailwind/GitHub)
@@ -84,9 +84,10 @@ patch.force_edgecolor: False
84
  text.color: 1f2937
85
  text.antialiased: True
86
 
87
- # Savefig
88
- savefig.dpi: 300
89
  savefig.facecolor: white
90
  savefig.edgecolor: none
91
  savefig.bbox: tight
92
- savefig.pad_inches: 0.2
 
 
12
  ytick.labelsize: 11
13
  legend.fontsize: 11
14
 
15
+ # Figure & DPI - Ultra High Resolution
16
+ figure.dpi: 600
17
  figure.facecolor: white
18
  figure.edgecolor: none
19
+ figure.figsize: 14, 8
20
  figure.autolayout: True
21
 
22
  # Modern Color Palette (inspired by Tailwind/GitHub)
 
84
  text.color: 1f2937
85
  text.antialiased: True
86
 
87
+ # Savefig - Ultra High Resolution
88
+ savefig.dpi: 600
89
  savefig.facecolor: white
90
  savefig.edgecolor: none
91
  savefig.bbox: tight
92
+ savefig.pad_inches: 0.2
93
+ savefig.format: png