mcpField
P
plotext-financial-chart

plotext-financial-chart

github.com/terrylica数据与数据库1145 次安装1 天前更新
代码仓库

关于 plotext-financial-chart

使用 plotext 为 GitHub Flavored Markdown 创建 ASCII 金融折线图的技能,面向文档和交易概念可视化,并规定文本输出及嵌入格式。

主要功能

  1. 01使用 plotext 创建 ASCII 折线图
  2. 02采用兼容 GitHub 的点标记
  3. 03移除 ANSI 转义码
  4. 04提供图表渲染与嵌入规则
  5. 05附带故障排查指南

适用场景

  1. 01在 Markdown 文档中添加价格图表
  2. 02展示交易屏障与阈值
  3. 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.md
evolution-log.md
tool-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()

资源

执行后反思

此技能执行完毕后,关闭前请检查:

  1. 命令是否成功? — 如果没有,修复导致失败的指令或错误表。
  2. 参数或输出是否发生变化? — 如果底层工具的接口发生偏移,请更新 Usage 示例和 Parameters 表以保持一致。
  3. 是否需要变通方案? — 如果你不得不临时调整(更换标志、增加步骤),请更新此 SKILL.md,以便下次调用时无需采用相同的变通方案。

只有问题确实存在且可复现时才进行更新,不要基于猜测更新。

评论

支持 Markdown