Files
2026-08-10 22:24:17 +08:00

278 lines
16 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
================================================================================
趋势预测分析工具 ChartAnalysis - 使用教学与部署说明
================================================================================
目录
--------------------------------------------------------------------------------
一、程序简介与功能总览
二、运行环境要求
三、部署文件清单
四、快速上手(5 步出图)
五、界面布局说明
六、详细操作教学
七、config.ini 配置说明
八、测试模式(开发用)
九、常见问题 FAQ
十、源码与重新编译
================================================================================
一、程序简介与功能总览
================================================================================
ChartAnalysis.exe 是一个连接 MySQL 数据库的趋势分析与预测绘图工具。
单文件绿色程序(C# WinForms 编写),无需安装、无需任何运行库。
主要功能:
--------------------------------------------------------------------------------
1. 数据库连接: 连接任意 MySQL 5.5~8.x 服务器,浏览数据库/表/列结构。
2. 灵活查询: X 轴单选、Y 轴多选、过滤规则、排序方向、条数/偏移/起点控制。
3. 智能绘图: 自动识别时间(X)轴(23 种时间格式),支持数值轴/文本轴。
4. 运算曲线: 13 种数学运算(含 6 种 AI 算法),可叠加在原始曲线上。
5. 图表交互: 十字准线、点击数据点查看数值、图例固定显示、图表设置。
6. 图片导出: 一键保存 PNG / JPG / BMP 图片。
7. 窗口自适应: 左侧配置面板可拖拽宽度,控件随宽度自动伸缩布局。
================================================================================
二、运行环境要求
================================================================================
1. 操作系统: Windows 7 SP1 / 8 / 8.1 / 10 / 11(32/64 位均可)。
- 注意: Windows 7 必须为 SP1 或以上版本。
2. .NET Framework: 4.6.2 或更高(推荐 4.8)。
- Win10 / 11 系统自带 4.8,开箱即用,无需安装。
- Win7 SP1 / 8 / 8.1 若缺失,用 Start.bat 启动会自动下载安装。
3. 数据库: MySQL 5.5 ~ 8.x(本机或远程服务器均可)。
- MySQL 连接驱动已内嵌进 exe,客户端无需安装任何驱动或 ODBC。
4. 无需安装: 不依赖 VC++ 运行库、Java、Python 等其他任何组件。
================================================================================
三、部署文件清单
================================================================================
[必需] ChartAnalysis.exe 主程序(单文件,约 1.5MB)
[必需] config.ini 数据库连接配置(与 exe 同目录)
[可选] Start.bat 引导启动器: 自动检测并安装 .NET Framework,
解决"没有 .NET 环境"电脑无法运行的问题。
Win7 SP1 ~ Win11 全兼容。
[可选] README.txt 本说明文档
发布时只需 exe + config.ini 两个文件即可运行。
================================================================================
四、快速上手(5 步出图)
================================================================================
第 1 步: 双击 ChartAnalysis.exe(或用 Start.bat)启动程序。
第 2 步: 左侧"服务器连接"区填好 主机/端口/用户名/密码,点击"连 接"。
(config.ini 已配置时自动填入,可直接连接)
第 3 步: 连接后自动加载数据库列表,选中数据库后自动加载表列表;
再选"存储表"→ 自动加载全部列;指定"横坐标"(X 轴);
按住 Ctrl 键多选"纵坐标"(Y 轴曲线)。
第 4 步: 按需设置过滤规则 / 排序 / 条数等,点击"绘制曲线"。
第 5 步: 等待查询完成,图表自动渲染;可继续叠加运算曲线或保存图片。
================================================================================
五、界面布局说明
================================================================================
┌────────────┬──────────────────────────────────────────────┐
│ 折叠 | 钉住 │ 标题栏 (表名 曲线图) │
│ ────────── │ 图例条 (色块+曲线名, 固定在标题下方) │
│ 服务器连接 │ 工具栏: 曲线 | 运算 | 参数 | 生成/清除/图例/设置/十字线 │
│ 排序规则 │ │
│ 存储表坐标 │ 图表绘图区 │
│ 过滤规则 │ (十字线/点击数据点/缩放自由) │
│ 绘制/保存 │ │
└────────────┴──────────────────────────────────────────────┘
左侧配置面板: 可拖动中间分隔条改变宽度 (380~800px)。
- 面板宽度 >= 380px 时,控件宽度随面板自适应伸缩;
- 面板拖到 380px 以下时,控件保持最小布局,右侧开始被遮蔽
(出现横向滚动条)。
折叠按钮: 隐藏左侧面板,腾出整个窗口给图表;点"展开配置"恢复。
钉住按钮: 锁定左侧面板宽度,拖动分隔条不再生效。
================================================================================
六、详细操作教学
================================================================================
6.1 服务器连接
--------------------------------------------------------------------------------
- 主机地址 / 端口 / 用户名 / 密码: 直接填写;密码框为掩码输入。
- DB 下拉框: 支持输入过滤,回车或选中即加载该库的表。
- 点"连 接": 连接服务器并刷新数据库列表(自动选中 config.ini 中的库)。
- 连接信息会自动保存到 config.ini,下次启动自动填入。
6.2 排序规则
--------------------------------------------------------------------------------
- 方向: 正序(最早在前) / 倒序(最新在前),默认正序。
* 注意: 无论哪种方向,图表 X 轴始终按时间(数值)从左到右递增显示。
倒序模式 = 只取最新的 N 条数据来画图。
- 条数: 查询多少行,默认 2000(0 = 不限制)。
- 偏移: 跳过前 N 行(从最早/最新一侧开始跳,跟随排序方向)。
- 起点: 从最新数据往回数 N 条作为查询起点,再取"条数"行。
例: 条数=2000、起点=5000 → 取倒数第 5000 条往前共 2000 条数据。
6.3 存储表与坐标轴
--------------------------------------------------------------------------------
- 存储表: 选择要查询的表,自动列出所有列。
- 横坐标: 单选 X 轴列(时间列 / 数值列 / 文本列均可自动识别)。
- 纵坐标: 按住 Ctrl 可多选,画多条曲线。
提示: 下方小字"提示: 按住 Ctrl 键可多选纵坐标"。
6.4 过滤规则(多行按 AND/OR 连接)
--------------------------------------------------------------------------------
每行规则由 4 列组成: 列 | 操作符 | 值 | 逻辑。
- 操作符: = != > >= < <= LIKE BETWEEN IS NULL IS NOT NULL
- 值: 普通条件直接填值;BETWEEN 用逗号分隔两个值,如 10,20;
LIKE 可直接写 % 通配符,如 'AB%' 可填 AB%。
- 逻辑: 该行与下一行之间的连接方式,AND 或 OR,默认 AND。
例:
列=类型 = 设备1 AND
列=温度 >= 100 OR
列=压力 <= 5
等价 SQL: WHERE 类型='设备1' AND 温度>=100 OR 压力<=5
- 按钮: "+ 添加规则" 加一行;"- 删除" 删选中行;"清空" 删除全部。
- 注意: 多行混用 AND/OR 时按行顺序连接,建议用括号语义自行组织顺序。
6.5 绘制曲线与保存图片
--------------------------------------------------------------------------------
- "绘制曲线": 后台线程查询并渲染,期间按钮禁用,完成后状态栏提示。
- "保存图片": 弹出保存对话框,可选 PNG / JPG / BMP 格式。
6.6 图表交互
--------------------------------------------------------------------------------
(1) 十字准线: 鼠标移入绘图区,显示跟随鼠标的灰色虚线十字架;
离开绘图区自动消失。工具栏"隐藏十字线/显示十字线"可开关。
(2) 点击数据点: 鼠标左键点击曲线上的数据点,弹出浮动信息窗,显示:
曲线名 / X 值 / Y 值 / 数据序号。
时间 X 轴自动格式化为 yyyy-MM-dd HH:mm:ss。
点击图表空白处或切换窗口自动关闭。
(3) 图例: 固定在标题下方,色块+曲线名,自动换行、高度自适应。
工具栏"隐藏图例/显示图例"可开关。
(4) 工具栏:
- 曲线: 选择目标曲线(仅"线性变换/二次变换"需要指定)。
- 运算: 选择运算类型(详见 6.7)。
- 参数: 输入所选运算的参数(窗口/阶数/迭代/α/a,b)。
- "生成运算曲线": 对已绘制曲线执行运算并叠加显示。
- "清除运算": 移除全部运算曲线。
- "图表设置": 打开设置对话框(详见 6.8)。
6.7 运算功能详解(13 种,按拼音排序)
--------------------------------------------------------------------------------
运算列表(默认选中"平滑曲线"):
名称 参数 说明
─────────────────────────────────────────────────────────────
贝叶斯回归 (AI) α:1 带正则的贝叶斯线性回归,α 越大曲线越平缓
常用对数 (log10) - 对 Y 值取以 10 为底的对数(需 Y>0)
对数 (ln) - 对 Y 值取自然对数(需 Y>0)
多项式拟合 (Polyfit) (AI) 阶数:3 最小二乘多项式拟合,阶数 1~10
二次变换 (a*y²+b) (AI) a,b:1,0 对指定曲线做二次变换
积分 (累积) - 梯形法累积积分(∫ydx)
开方 (sqrt) - 对 Y 值开平方(需 Y>=0)
平滑曲线 (滑动平均) 窗口:5 滑动平均滤波,窗口 3~101(奇数值)
梯度下降 (AI) 迭代:200 数据归一化后用梯度下降迭代拟合回归线
微分 (差分) - 一阶差分 dy/dx
线性回归 (AI) - 最小二乘线性回归直线
线性变换 (a*y+b) (AI) a,b:1,0 对指定曲线做线性变换
指数 (exp) - 对 Y 值取指数
- 使用步骤: 先"绘制曲线"→ 选择运算与参数 → "生成运算曲线"。
- "线性变换/二次变换"需先在"曲线"下拉框指定目标曲线(变换只作用于
该曲线,其余运算对全部曲线各生成一条结果)。
- (AI) 标记: 表示智能拟合/迭代类算法。
6.8 图表设置对话框
--------------------------------------------------------------------------------
"常规"页:
- 标题 / 横轴名称 / 纵轴名称(修改立即应用于图表)。
- 图例位置: 固定于标题下方(不可调)。
- 横轴/纵轴网格: 显示开关 + 网格间距(留空 = 自动)。
- 次网格: 加密网格线开关 + 细分数(默认 4 等分)。
"坐标轴"页:
- 横轴/纵轴最小/最大值: 留空 = 自动。
- 横轴/纵轴对数刻度 (Log): 要求数据均为正值。
"曲线样式"页:
- 逐条曲线设置: 颜色 / 线宽(1~8) / 线型(实线/虚线/点线/点划线) /
标记(无/圆点/方块/三角/菱形)。
- 点"应用"生效并关闭;"取消"放弃修改。
================================================================================
七、config.ini 配置说明
================================================================================
[mysql]
host = 127.0.0.1 数据库服务器地址 (远程填 IP 或域名)
port = 3306 端口
user = root 用户名
password = 密码
database = 数据库名
charset = utf8mb4 字符集
- 也可在程序界面的"连接"区直接填写,点"连接"后自动保存到本文件。
- 首次运行没有 config.ini 时程序按默认值 (127.0.0.1/3306/root/空) 启动。
================================================================================
八、测试模式(开发用)
================================================================================
ChartAnalysis.exe --selftest 自检: 连接数据库、枚举表/列、查询数据,
结果写入 selftest_result.txt
ChartAnalysis.exe --drawtest 绘图测试: 用数据库中第一张表画 1 条曲线,
导出 drawtest.png 验证图表渲染
================================================================================
九、常见问题 FAQ
================================================================================
Q1. 双击 exe 无反应/报错提示缺少 .NET Framework?
A1. 用 Start.bat 启动会自动安装 .NET 4.8;或按第二节手动安装。
Q2. 报错"无法连接数据库"?
A2. 检查 config.ini 或界面中填写的地址/端口/账号/密码/数据库名是否正确,
并确认服务器防火墙放行了对应端口(默认 3306)。
Q3. Win7 安装 .NET 4.8 失败?
A3. 确认系统是 Win7 SP1,且已安装最新 Windows Update 补丁。
.NET 4.8 官方最低支持 Win7 SP1。
Q4. 查询很慢或图表点很多很卡?
A4. 在"条数"里减小查询行数(如 500/1000);或配合"起点"只看最近一段。
Q5. 为什么方向选"倒序"后图表还是从左到右时间递增?
A5. 这是正常设计: 图表 X 轴始终按时间递增显示,"倒序"仅表示取最新的
数据段来画图(等价于只查看最近 N 条)。
Q6. 对数刻度 / 对数运算为什么有的点不显示?
A6. 对数要求数值为正;sqrt 要求非负。非法点会被自动跳过,曲线相应断开。
Q7. 左侧面板变窄后控件看不全?
A7. 面板小于 380px 时控件保持最小布局并出现横向滚动条,属设计行为;
拖宽面板即可完整显示。
================================================================================
十、源码与重新编译(开发用)
================================================================================
Program.cs 主程序源码(C#,单文件,含全部窗体逻辑)
tools\ref\ .NET 4.6.2 参考程序集(编译时引用)
lib\ 依赖 DLL(编译时内嵌进 exe)
build.bat 一键重新编译 ChartAnalysis.exe(本机需装 .NET 4.x)
config.ini 数据库连接配置
编译命令: 双击 build.bat,或命令行执行:
build.bat
产物: ChartAnalysis.exe(内嵌 MySqlConnector 等 10 个 DLL 及程序图标)
依赖 DLL 明细(已内嵌,仅供说明):
MySqlConnector.dll、Microsoft.Bcl.AsyncInterfaces.dll、
Microsoft.Extensions.DependencyInjection.Abstractions.dll、
Microsoft.Extensions.Logging.Abstractions.dll、System.Buffers.dll、
System.Diagnostics.DiagnosticSource.dll、System.Memory.dll、
System.Numerics.Vectors.dll、System.Runtime.CompilerServices.Unsafe.dll、
System.Threading.Tasks.Extensions.dll
================================================================================