|
|
| import pandas as pd |
| import matplotlib.pyplot as plt |
| import gradio as gr |
|
|
| def analyze_csv(file): |
| df = pd.read_csv(file.name) |
|
|
| stats = df.describe().loc[["mean", "std", "min", "max"]].round(2).to_string() |
|
|
| |
| plt.figure(figsize=(6, 4)) |
| plt.scatter(df["Income"], df["SpendingScore"], alpha=0.7) |
| plt.title("Income vs Spending Score") |
| plt.xlabel("Income") |
| plt.ylabel("Spending Score") |
| plt.grid(True) |
| img_path = "income_vs_score.png" |
| plt.savefig(img_path) |
| plt.close() |
|
|
| return { |
| "📊 Summary": stats, |
| "📈 Chart": img_path |
| } |
|
|
| iface = gr.Interface( |
| fn=analyze_csv, |
| inputs=gr.File(label="Upload CSV File", file_types=[".csv"]), |
| outputs=[ |
| gr.Text(label="📊 Summary"), |
| gr.Image(label="📈 Chart") |
| ], |
| title="📊 表格分析大模型", |
| description="上传一个CSV表格,我将输出统计分析结果并展示一张图表。" |
| ) |
|
|
|
|
| if __name__ == "__main__": |
| iface.launch() |
|
|