关于 matplotlib
matplotlib 是一项使用 matplotlib 绘制近期交互上下文中数据的 Agent 技能。它生成透明背景的 PNG,并以 Markdown 图片内嵌显示,同时使用 Emacs 前景色设置图表样式。
主要功能
- 01从上下文提取可绘图数据
- 02使用 matplotlib 创建图表
- 03生成透明背景图像
- 04采用 Emacs 前景色设置样式
- 05输出内嵌 Markdown 图片
适用场景
- 01可视化对话中提到的数据
- 02创建可内嵌显示的图表
- 03使图表样式匹配 Emacs 主题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ xenodium/ emacs-skills --skill matplotlib安装后在 Claude Code 中输入/matplotlib确认已加载。
详细介绍
使用 matplotlib 绘制数据
使用 matplotlib 绘制最近交互上下文中的数据。生成透明背景的 PNG 图片,并将其作为 Markdown 图片输出,以便内嵌显示。
如何绘图
- 从当前上下文中提取或推导可绘制的数据。
- 如果尚未在本次会话之前的绘图中获知 Emacs 前景色,请查询:
这会返回类似emacsclient --eval ' (face-foreground (quote default))'"#eeffff"的十六进制颜色。后续所有绘图都重复使用此颜色。 - 使用该颜色编写 Python 脚本并保存到临时文件。
- 使用
uv run --with matplotlib运行脚本。 - 将结果作为独占一行的 Markdown 图片输出:

uv run --with matplotlib /tmp/agent-plot-XXXX.py
Python 脚本模板
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(10, 6))
fig.patch.set_alpha(0)
ax.set_facecolor('none')
FG = "#eeffff" # from emacsclient query
ax.spines['bottom'].set_color(FG)
ax.spines['left'].set_color(FG)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.tick_params(colors=FG)
ax.xaxis.label.set_color(FG)
ax.yaxis.label.set_color(FG)
ax.title.set_color(FG)
# ... plot commands using the data ...
plt.tight_layout()
plt.savefig("/tmp/agent-plot-XXXX.png", dpi=150, transparent=True)
规则
- 每次会话只查询一次 Emacs 前景色,后续所有绘图都重复使用该颜色。仅当尚未获知该颜色时才再次查询。
- 透明背景始终使用
fig.patch.set_alpha(0)和ax.set_facecolor('none')。 - 在
savefig中始终使用transparent=True。 - 文件名始终包含时间戳(例如
/tmp/agent-plot-$(date +%s).png)。不要使用agent-plot-lorenz.png这类描述性名称。 - 始终使用
uv run --with matplotlib运行脚本。不要使用pip install。 - 脚本成功运行后,将 Markdown 图片(
)作为独占一行输出。 - 根据数据选择合适的图表类型(折线图、柱状图、散点图、直方图、饼图、热力图等)。
- 在有助于清晰表达时添加标题、坐标轴标签和图例。
- 图例样式应与主题匹配:深色背景使用
ax.legend(facecolor='#1a1a2e', edgecolor=FG, labelcolor=FG)。 - 使用
ax.grid(True, alpha=0.2, color=FG)绘制淡雅的网格线。 - 隐藏上边框和右边框,使图表更简洁。
- 如果最近的上下文中没有可绘制的数据,请告知用户。
评论
支持 Markdown