Spaces:
Sleeping
Sleeping
| import matplotlib.pyplot as plt | |
| import seaborn as sns | |
| # ========================================== | |
| # 1. EXTRACTED DATA FROM TERMINAL | |
| # ========================================== | |
| # Error Distribution Data | |
| error_types = ['wrong_column', 'wrong_table', 'ambiguous_column', 'other'] | |
| error_counts = [61, 11, 4, 1] | |
| # SQL Operation Analysis Data | |
| sql_ops = ['WHERE', 'JOIN', 'ORDER BY', 'GROUP BY'] | |
| op_counts = [55, 36, 20, 14] | |
| # ========================================== | |
| # 2. SET UP THE DASHBOARD LAYOUT | |
| # ========================================== | |
| # Use a clean, modern aesthetic | |
| sns.set_theme(style="whitegrid") | |
| fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6)) | |
| # ========================================== | |
| # 3. PLOT 1: ERROR DISTRIBUTION (Horizontal Bar) | |
| # ========================================== | |
| sns.barplot(x=error_counts, y=error_types, ax=ax1, palette="flare") | |
| ax1.set_title('Primary Cause of Failure (Total: 77 Errors)', fontsize=14, pad=15, fontweight='bold') | |
| ax1.set_xlabel('Number of Queries') | |
| ax1.set_ylabel('') | |
| # Add actual numbers next to the bars | |
| for i, v in enumerate(error_counts): | |
| ax1.text(v + 1.5, i, f"{v}", color='#333333', va='center', fontweight='bold') | |
| # ========================================== | |
| # 4. PLOT 2: SQL OPERATIONS (Vertical Bar) | |
| # ========================================== | |
| sns.barplot(x=sql_ops, y=op_counts, ax=ax2, palette="crest") | |
| ax2.set_title('Clauses Present in Failed Queries', fontsize=14, pad=15, fontweight='bold') | |
| ax2.set_ylabel('Frequency') | |
| ax2.set_xlabel('') | |
| # Add actual numbers on top of the bars | |
| for i, v in enumerate(op_counts): | |
| ax2.text(i, v + 1, str(v), color='#333333', ha='center', fontweight='bold') | |
| # ========================================== | |
| # 5. RENDER AND SAVE | |
| # ========================================== | |
| plt.suptitle('Text-to-SQL Error Diagnostic Dashboard', fontsize=18, fontweight='heavy', y=1.05) | |
| sns.despine(left=True, bottom=True) # Removes clunky borders | |
| plt.tight_layout() | |
| # Save the plot as a high-res image for your report! | |
| plt.savefig('error_diagnostic_plot.png', dpi=300, bbox_inches='tight') | |
| print("✅ Plot successfully saved as 'error_diagnostic_plot.png'") | |
| # Display the plot | |
| plt.show() |