关于 plotext-financial-chart
使用 plotext 为 GitHub Flavored Markdown 创建 ASCII 金融折线图的技能,面向文档和交易概念可视化,并规定文本输出及嵌入格式。
主要功能
- 01使用 plotext 创建 ASCII 折线图
- 02采用兼容 GitHub 的点标记
- 03移除 ANSI 转义码
- 04提供图表渲染与嵌入规则
- 05附带故障排查指南
适用场景
- 01在 Markdown 文档中添加价格图表
- 02展示交易屏障与阈值
- 03以终端友好文本可视化金融数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill plotext-financial-chart安装后在 Claude Code 中输入/plotext-financial-chart确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-and-patterns.mdevolution-log.mdtool-selection.md详细介绍
Plotext 金融图表技能
使用 plotext 和点标记(•)为 GitHub Flavored Markdown 创建 ASCII 金融折线图。纯文本输出,可在 GitHub、终端和所有等宽环境中正确渲染。
自我演进的技能:此技能会在使用过程中持续改进。如果说明有误、参数发生偏移,或需要变通方案,请立即修正此文件,不要延后。仅针对真实且可复现的问题进行更新。
何时使用此技能
- 在 Markdown 文档中添加价格走势/折线图
- 可视化交易概念(障碍、阈值、进场/出场水平)
- 任何需要可视化金融数据的 GFM Markdown 文件
- 用户提到“金融图表”“折线图”“价格图表”“plotext”或“交易图表”
不适用于:流程图或架构图。
预检
一体化预检脚本
/usr/bin/env bash << 'PREFLIGHT_EOF'
python3 --version &>/dev/null || { echo "ERROR: Python 3 not found"; exit 1; }
if command -v uv &>/dev/null; then PM="uv pip"
elif command -v pip3 &>/dev/null; then PM="pip3"
else echo "ERROR: Neither uv nor pip3 found"; exit 1; fi
python3 -c "import plotext" 2>/dev/null || { echo "Installing plotext via $PM..."; $PM install plotext; }
python3 -c "
import plotext as plt, re
plt.clear_figure()
plt.plot([1,2,3], [1,2,3], marker='dot')
plt.plotsize(20, 5)
plt.theme('clear')
output = re.sub(r'\x1b\[[0-9;]*m', '', plt.build())
assert '•' in output
" && echo "✓ plotext ready (dot marker verified)"
PREFLIGHT_EOF
快速开始
import re
import plotext as plt
x = list(range(20))
y = [97, 98, 100, 101, 100, 98, 100, 101, 102, 101,
100, 98, 100, 101, 102, 103, 102, 101, 100, 100]
plt.clear_figure()
plt.plot(x, y, marker="dot", label="Price path")
plt.hline(103) # Upper barrier
plt.hline(97) # Lower barrier
plt.hline(100) # Entry price
plt.title("Triple Barrier Method")
plt.xlabel("Time (bars)")
plt.ylabel("Price")
plt.plotsize(65, 22)
plt.theme("clear")
print(re.sub(r'\x1b\[[0-9;]*m', '', plt.build()))
强制设置
每个图表都必须使用以下设置:
| 设置 | 代码 | 原因 |
|---|---|---|
| 重置状态 | plt.clear_figure() | 防止残留数据 |
| 点标记 | marker="dot" | 确保在 GitHub 上对齐 |
| 不使用颜色 | plt.theme("clear") | 输出干净的文本 |
| 去除 ANSI 码 | re.sub(r'\x1b\[…', '', …) | 移除残留的转义码 |
| 构建为字符串 | plt.build() | 不要使用 plt.show() |
标记参考
| 标记 | GitHub 安全 | 使用场景 |
|---|---|---|
"dot" | 是 | 默认值——始终使用 |
"hd" | 是 | 仅用于终端,需要平滑效果 |
"braille" | 否 | 切勿用于 Markdown |
"fhd" | 否 | 切勿使用——仅支持 Unicode 13.0+ |
渲染命令
/usr/bin/env bash << 'RENDER_EOF'
python3 << 'CHART_EOF'
import re
import plotext as plt
x = list(range(20))
y = [97, 98, 100, 101, 100, 98, 100, 101, 102, 101,
100, 98, 100, 101, 102, 103, 102, 101, 100, 100]
plt.clear_figure()
plt.plot(x, y, marker="dot", label="Price path")
plt.hline(103)
plt.hline(97)
plt.hline(100)
plt.title("Triple Barrier Method")
plt.xlabel("Time (bars)")
plt.ylabel("Price")
plt.plotsize(65, 22)
plt.theme("clear")
print(re.sub(r'\x1b\[[0-9;]*m', '', plt.build()))
CHART_EOF
RENDER_EOF
在 Markdown 中嵌入(强制要求:源码紧邻图表)
每个图表后面都必须紧接着一个包含 Python 源码的 <details> 块。说明文字应放在 <details> 块之后,绝不能插在图表和源码之间。
✅ CORRECT: Chart → <details> → Explanatory text
❌ WRONG: Chart → Explanatory text → <details>
完整的嵌入模板请参阅 ./references/api-and-patterns.md。
强制检查清单
-
plt.clear_figure()— 重置状态 -
marker="dot"— 用于 GitHub 的点标记 -
plt.theme("clear")+re.sub()去除 — 不含 ANSI 码 -
plt.title("...")— 每个图表都需要标题 -
plt.xlabel/plt.ylabel— 轴标签 -
plt.plotsize(65, 22)— 适合 80 列代码块 -
<details>块必须紧接着图表(在任何说明文字之前)
故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 输出中有 ANSI 码 | 缺少主题设置/去除步骤 | 添加 plt.theme("clear") 和 re.sub() 去除步骤 |
| 在 GitHub 上错位 | 标记类型错误 | 使用 marker="dot",绝不要使用 braille/fhd |
| 图表过宽 | plotsize 设置过大 | 对于 80 列代码块,使用 plt.plotsize(65, 22) |
| 没有斜率线 | 数据点过少 | 使用 15 个以上的数据点以显示斜率 |
ModuleNotFoundError | 未安装 | 运行预检 |
| 输出为空 | 缺少 build() | 使用 plt.build(),不要使用 plt.show() |
资源
执行后反思
此技能执行完毕后,关闭前请检查:
- 命令是否成功? — 如果没有,修复导致失败的指令或错误表。
- 参数或输出是否发生变化? — 如果底层工具的接口发生偏移,请更新 Usage 示例和 Parameters 表以保持一致。
- 是否需要变通方案? — 如果你不得不临时调整(更换标志、增加步骤),请更新此 SKILL.md,以便下次调用时无需采用相同的变通方案。
只有问题确实存在且可复现时才进行更新,不要基于猜测更新。
评论
支持 Markdown