Files

278 lines
16 KiB
Plaintext
Raw Permalink Normal View History

2026-08-10 22:24:17 +08:00
================================================================================
趋势预测分析工具 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
================================================================================