plotext-financial-chart について
plotext を使い、GitHub Flavored Markdown 向けの ASCII 金融折れ線グラフを作成するスキルです。ドキュメントや取引概念の図示を対象に、テキスト表示と埋め込み形式を定めています。
主な機能
- 01plotext による ASCII 折れ線グラフ作成
- 02GitHub 対応のドットマーカー
- 03ANSI エスケープコードの除去
- 04グラフの描画と埋め込み手順
- 05トラブルシューティング案内
活用シーン
- 01Markdown ドキュメントへの価格チャート追加
- 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 金融チャートスキル
ドットマーカー(•)を使って、GitHub Flavored Markdown 用の ASCII 金融折れ線チャートを作成します。純粋なテキスト出力のため、GitHub、ターミナル、あらゆる等幅環境で正しく表示されます。
自己進化型スキル:このスキルは使用を通じて改善されます。指示に誤りがある場合、パラメーターが変化した場合、または回避策が必要になった場合は、先送りせず、このファイルをすぐに修正してください。実際に再現できる問題がある場合にのみ更新してください。
このスキルを使用する場面
- Markdown ドキュメントに価格推移/折れ線チャートの図を追加するとき
- 取引の概念(バリア、しきい値、エントリー/エグジットレベル)を可視化するとき
- 金融データの可視化が必要な GFM Markdown ファイル全般
- ユーザーが「financial chart」、「line chart」、「price chart」、「plotext」、「trading chart」と言及したとき
対象外:フローチャートやアーキテクチャ図。
事前チェック
オールインワン事前チェック スクリプト
/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.show() ではなく plt.build() を使用 |
リソース
実行後の振り返り
このスキルの実行後、終了する前に次の点を確認してください。
- コマンドは成功しましたか? — 成功していない場合は、失敗の原因となった手順またはエラーテーブルを修正します。
- パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変更があった場合は、使用例とパラメーターテーブルを更新して一致させます。
- 回避策が必要でしたか? — 別のフラグや追加手順など、その場で工夫する必要があった場合は、次回の実行で同じ回避策が不要になるよう、この SKILL.md を更新します。
問題が実際に発生し、再現可能な場合にのみ更新してください。推測で更新しないでください。
コメント
Markdown 対応