用途:在 Emacs 中通过 /gnuplot 调用,把当前上下文中的数据用 gnuplot 绘制成图片,并以内联 Markdown 图片形式输出。
主要能力:从最近交互上下文中提取或推导可绘图数据;生成透明背景 PNG;自动查询并使用 Emacs 默认前景色,使图内文字与 Emacs 背景协调;支持行图、柱状图、直方图、散点图等,可按数据选择合适图型;可给图表添加标题、坐标轴标签和图例。
使用方式:若本会话尚未获知 Emacs 前景色,先执行 emacsclient --eval '
(face-foreground (quote default))',得到类似 "#eeffff" 的十六进制颜色并复用。用该颜色写 gnuplot 脚本到临时文件,脚本使用 set terminal pngcairo transparent enhanced size 800,500,正文设置边框、图例、坐标轴标签、标题、刻度等文字颜色为 FG;随后运行 gnuplot /tmp/agent-plot-XXXX.gp,成功后单独一行输出 Markdown 图片
。文件名须含时间戳,如 /tmp/agent-plot-$(date +%s).png,避免使用描述性名称。数据较小时可用内联数据($DATA << EOD ... EOD),大数据集则写独立数据文件。
限制与注意:前景色每会话只查询一次,已知时不再查询;必须使用 pngcairo transparent 终端以获得透明背景;图例保持透明(noopaque、nobox),不要设为不透明,否则在透明终端上会填充不透明背景、遮挡浅色 FG 文字;图例若与密集或填充数据重叠,应移到空白角落或用 set key outside,而非改为不透明;填充保持半透明(如 fs transparent solid 0.15)以便文字可读;需要上下标时使用 enhanced 文本模式;若最近上下文中没有可绘图数据,应告知用户。
适用场景:在 Emacs 工作流中快速把对话或上下文数据可视化为可内联渲染的图片。其它平台、收费与价格信息暂未提供。