# 图表制作器 1.0

> CSV/Excel → 论文级图表，13 种类型，一键导出

<p align="center">
  <img src="https://img.shields.io/badge/Python-3.10+-blue" alt="Python">
  <img src="https://img.shields.io/badge/GUI-PyQt6-green" alt="PyQt6">
  <img src="https://img.shields.io/badge/Charts-13种-orange" alt="13 chart types">
  <img src="https://img.shields.io/badge/Tests-66_passed-brightgreen" alt="66 tests">
  <img src="https://img.shields.io/badge/license-MIT-purple" alt="license">
</p>

## 简介

一款面向论文写作的桌面图表工具。拖入 CSV/Excel 数据，选择图表类型，调整配色样式，实时预览后导出为出版级高清图片。

专为**生态环境评价、地理学、遥感科学**等领域的学术论文设计，也适用于任何需要快速生成图表的场景。

## 快速开始

### 方式一：下载 exe（Windows）

下载 [图表制作器1.0.exe](../../releases) 双击运行，无需安装 Python。

### 方式二：源码运行

```bash
git clone https://github.com/SJAD-67/chartforge.git
cd chartforge
pip install -r requirements.txt
python main.py
```

## 功能

### 13 种图表类型

| 类别 | 图表 |
|------|------|
| 时空变化 | 折线图、面积图 |
| 统计对比 | 柱状图、分组柱状、堆叠柱状、箱线图、小提琴图、雷达图、环图 |
| 相关性 | 散点图、气泡图、热力图 |
| 综合 | 组合图（柱+线双Y轴） |

### 6 套学术配色

学术蓝、自然绿、暖橙、典雅紫、学术红、灰度

### 导出格式

PNG / SVG / TIFF / PDF，DPI 300–1200

### 模板系统

保存图表配置为模板，一键套用到新数据

## 界面

```
┌── 菜单栏 + 工具栏 ──────────────────────────┐
│ 📂导入 │ 🔄生成 │ 💾保存模板 │ 📋加载 │ 🖼导出 │
├──────┬──────────────────┬───────────────────┤
│①导入 │                  │ 📈 图表类型        │
│ 拖拽 │    实时预览       │ 🎨 配色方案        │
│②数据列│                  │ 🏷 标题/轴标签     │
│③X/Y轴│                  │ 📤 DPI/格式       │
│  ☑多选│                 │                   │
├──────┴──────────────────┴───────────────────┤
│ 🟢 状态栏                                    │
└─────────────────────────────────────────────┘
```

## Claude Code Skill

本项目包含一个 Claude Code Skill（`.claude/skills/chartforge/SKILL.md`），让 Claude 通过对话直接生成图表，无需打开 GUI：

```
"帮我画一张 EQI 变化趋势的折线图"
```

Skill 会在 Claude Code 启动时自动加载（仅限本项目目录）。

## 项目结构

```
chartforge/
├── main.py              # 入口
├── requirements.txt
├── app/                 # GUI 层 (PyQt6)
│   ├── main_window.py
│   ├── data_panel.py    # 数据导入 + 坐标轴映射
│   ├── preview_panel.py # matplotlib 实时预览
│   ├── config_panel.py  # 图表配置面板
│   └── toolbar.py       # 工具栏
├── core/                # 业务逻辑层
│   ├── data_loader.py   # CSV/Excel 解析
│   ├── chart_builder.py # 13 种图表构建器
│   ├── style_manager.py # 配色 + 字体管理
│   ├── exporter.py      # PNG/SVG/TIFF/PDF 导出
│   ├── template.py      # 模板系统
│   └── config_manager.py# 用户偏好持久化
├── tests/               # 66 个测试
│   └── fixtures/        # 测试数据
└── resources/           # 模板 + 字体
```

## 测试

```bash
pytest tests/ -v
# 66 passed
```

## 技术栈

- **GUI**: PyQt6
- **图表**: matplotlib + seaborn
- **数据**: pandas, openpyxl
- **打包**: PyInstaller（单文件 exe, ~82MB）

## 作者

**SJAD**（SJAD-67）

## 许可

MIT License
