Install
openclaw skills install simulated-peak-plot生成模拟峰图(高斯峰),用于色谱、光谱或任何信号可视化。当用户要求生成峰谱、模拟信号数据、创建峰图、可视化保留时间或输出数据为Markdown表格时触发。支持自定义峰参数、噪声水平、基线设置、复合峰(N个子峰组合)、自定义坐标轴标题/单位、CSV完整数据导出、可点击的file:///路径输出、以及从设备导出数据导入CSV。
openclaw skills install simulated-peak-plot当用户出现以下意图时,加载本技能:
否定条件:除非用户明确提到生成峰图或模拟数据,否则不要主动触发。
→ 权限说明详见 references/permission.md(低风险,unified 授权)
# 交互式生成峰图
python {SKILL_DIR}/scripts/generate_peak.py --interactive
# 从 CSV 文件导入数据
python {SKILL_DIR}/scripts/generate_peak.py --import-csv data.csv
# 使用 JSON 配置文件
python {SKILL_DIR}/scripts/generate_peak.py --config config.json
本技能用于生成模拟峰图(高斯峰),适用于教学、测试或演示场景。支持:
xlabel:X轴标题(默认:Time)ylabel:Y轴标题(默认:Response)x_unit:X轴单位(默认:min)y_unit:Y轴单位(默认:mV,可设为V、absorbance等)[(t1, s1), (t2, s2), ...]Time_<unit>,Signal_<unit>file:/// URI,可直接点击grid:是否显示网格线(默认:True)grid_linestyle:网格线样式 - 'solid'、'dashed'、'dotted'、'dashdot'
grid_alpha:网格线透明度(默认:0.6)直接导入设备导出的原始CSV数据,无需手动配置峰参数。
命令行用法:
python {SKILL_DIR}/scripts/generate_peak.py --import-csv data.csv
python {SKILL_DIR}/scripts/generate_peak.py --import-csv data.csv --x-col 0 --y-col 1
python {SKILL_DIR}/scripts/generate_peak.py --import-csv data.csv --no-header --output my_plot.png
参数说明:
| 参数 | 说明 |
|---|---|
--import-csv | CSV文件路径(必需) |
--x-col | X轴数据列索引(默认:0) |
--y-col | Y轴数据列索引(默认:1) |
--no-header | CSV文件无表头行 |
--output | 输出PNG文件名(默认:imported_data.png) |
支持的CSV格式:
file:///C:/path/to/image.png始终从检查环境开始:
# 检查 Python 可用性
python --version
# 检查必需包
python -c "import numpy; import matplotlib; print('所有包可用')"
如果缺少包,指导用户安装:
pip install numpy matplotlib
通过对话配置参数。首先显示点数推荐表。
时间范围:
默认峰(包括含3个子峰的复合峰):
信号设置:
输出: PNG + Markdown表格(打印到控制台)
询问用户:
根据以下因素显示推荐表:
推荐公式:
points = max(500, duration * peaks * sharpness_factor * 2)
典型推荐:
| 持续时间(min) | 峰数 | 基线 | 推荐点数 |
|---|---|---|---|
| 5-10 | 2-4 | 低(<50) | 500-800 |
| 10-20 | 4-8 | 中(50-100) | 800-1200 |
| 20-30 | 8+ | 高(>100) | 1200-2000 |
| 30+ | 任意 | 任意 | 2000+ |
同时显示计算:
对于您的设置:
持续时间 = [t_end - t_start] min
峰数 = [num_peaks]
基线 = [baseline]
推荐点数 = max(500, [calculated_value])
使用 {SKILL_DIR}/scripts/generate_peak.py 脚本:
python {SKILL_DIR}/scripts/generate_peak.py --interactive
脚本将:
脚本将:
复合峰通过组合任意数量的高斯子峰创建。这允许各种复杂峰形:
复合峰可定义为:
{
"name": "3-peak Composite",
"type": "composite",
"peaks": [
{"RT": 11.5, "height": 1100, "HWH": 0.15},
{"RT": 12.0, "height": 800, "HWH": 0.15},
{"RT": 12.5, "height": 600, "HWH": 0.15}
]
}
| 子峰数 | RT分布 | 高度分布 | 结果形状 |
|---|---|---|---|
| 2 | 接近的RT | 不同高度 | M形 / 肩峰 |
| 3 | 均匀间隔 | 递减 | W形 / 三重 |
| 4 | 接近的RT | 随机 | 不规则 / 锯齿 |
| 3 | Same RT | Increasing then decreasing | 馒头形 (Bun shape) |
通过调整子峰参数,灵活性允许用户模拟几乎任何峰形。
export_csv: true以[(t1, s1), (t2, s2), ...]格式导出完整数据grid: false隐藏,或自定义grid_linestyle和grid_alpha{SKILL_DIR}/scripts/generate_peak.py - 主生成脚本,支持Markdown表格输出{SKILL_DIR}/references/parameters.md - 详细参数文档用户请求:"生成包含5个峰(含1个3子峰复合峰)的峰谱,输出数据为表格"
响应工作流:
用户可以修改:
{
"time_range": [2, 12, 1000],
"peaks": [
{"name": " ", "RT": 3.5, "height": 1853, "HWHM": 0.12},
{"name": "Peak A", "RT": 5.0, "height": 8316, "HWHM": 0.15},
{
"name": "Peak B (composite)",
"type": "composite",
"peaks": [
{"RT": 6.3, "height": 6653, "HWHM": 0.15},
{"RT": 6.5, "height": 3259, "HWHM": 0.12},
{"RT": 6.6, "height": 2877, "HWHM": 0.12}
]
}
],
"baseline": 20,
"noise_level": 15,
"output": "custom_peak_plot.png",
"xlabel": "Time",
"ylabel": "Response",
"x_unit": "min",
"y_unit": "mV",
"export_csv": true,
"clickable_path": true,
"grid": true,
"grid_linestyle": "solid",
"grid_alpha": 0.4
}
Time_min,Signal_mV
2.000000,49.782199
2.020040,46.140969
...
| 参数 | 值 | 说明 |
|---|---|---|
| 显示/隐藏网格线 | ||
| 网格线样式 | ||
| 网格透明度 |