gnuplot について
gnuplot は、直近の対話コンテキストにあるデータをプロットし、PNG をインライン表示するエージェントスキルです。スクリプトの作成から gnuplot の実行、画像出力の形式までを案内します。
主な機能
- 01コンテキストからプロット可能なデータを抽出
- 02透明背景の PNG プロット生成
- 03gnuplot スクリプトの作成と実行
- 04Markdown 画像としてインライン出力
活用シーン
- 01対話中のデータをプロット
- 02透明背景のチャートを生成
- 03プロット結果をインライン表示
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ xenodium/ emacs-skills --skill gnuplotインストール後、Claude Code で/gnuplotを入力して読み込まれたか確認します。
詳細
gnuplotでデータをプロットする
直近のやり取りのコンテキストからデータをプロットします。背景が透明なPNG画像を生成し、インラインで表示されるようにMarkdown画像として出力します。
プロット方法
- 現在のコンテキストからプロット可能なデータを抽出するか、導き出します。
- このセッションで以前にプロットした際のEmacsの前景色がまだ分からない場合は、次のコマンドで確認します。
これにより、emacsclient --eval ' (face-foreground (quote default))'"#eeffff"のような16進数の色が返されます。以降のプロットでは、すべてこの色を再利用します。 - この色を使用したgnuplotスクリプトを一時ファイルに書き込みます。
- スクリプトに対してgnuplotを実行します。
- 結果をMarkdown画像として、それだけの行に出力します。

gnuplot /tmp/agent-plot-XXXX.gp
gnuplotスクリプトのテンプレート
set terminal pngcairo transparent enhanced size 800,500
set output "/tmp/agent-plot-XXXX.png"
FG = "#eeffff" # from emacsclient query
set border lc rgb FG
set key textcolor rgb FG noopaque nobox # transparent: Emacs bg shows through, FG text stays legible
set xlabel textcolor rgb FG
set ylabel textcolor rgb FG
set title textcolor rgb FG
set xtics textcolor rgb FG
set ytics textcolor rgb FG
# ... plot commands using the data ...
ルール
- セッションごとにEmacsの前景色を一度だけ確認し、以降のプロットでは再利用します。色が分かっていない場合に限り、再度確認します。
- 背景を透明にするため、必ず
pngcairo transparent端末を使用します。 - ファイル名には必ずタイムスタンプを使用します(例:
/tmp/agent-plot-$(date +%s).png)。agent-plot-lorenz.pngのような説明的な名前は使用しないでください。 - 実用的な場合は、インラインデータ(
$DATA << EOD ... EOD)を使用します。大規模なデータセットの場合は、別のデータファイルを作成します。 - gnuplotが正常に実行された後、Markdown画像(
)をそれだけの行に出力します。 - データに適したプロットの種類(折れ線、棒、ヒストグラム、散布図など)を選びます。
- 明確さが増す場合は、タイトル、軸ラベル、凡例を付けます。
- 凡例は透明に保ち(
noopaque、枠線なし)、Emacsの背景を透過させ、前景色のテキストが読みやすいようにします。凡例をopaqueにしてはいけません。透明な端末では凡例の枠が不透明(多くの場合、白)で塗りつぶされ、明るい前景色のテキストが見えなくなるためです。凡例が密集したデータや塗りつぶしデータと重なる場合は、空いている隅に移動するか、set key outsideを使用します。不透明にするのは避けてください。 - 塗りつぶしは半透明(例:
fs transparent solid 0.15)にし、塗りつぶしの上に描画される凡例やラベルをEmacsの背景に対して読みやすく保ちます。 - 必要に応じて、下付き文字や上付き文字に
enhancedテキストモードを使用します。 - 直近のコンテキストにプロット可能なデータがない場合は、その旨をユーザーに伝えます。
コメント
Markdown 対応