You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

xm-grace:通过bash批处理脚本自定义图例与优化图例文本

问题1:修改图例框外观的批处理选项

在你的combo.bfile批处理文件中添加以下Grace命令,可自定义图例的位置、字体大小/类型及边框样式:

  • 设置图例位置:
    推荐用相对位置预设(更适配页面尺寸),比如放在右上角:

    legend place right top
    

    也可以用绝对比例坐标(基于页面尺寸2560x2048):

    legend loctype view
    legend position 0.85, 0.85
    

    loctype view表示坐标是页面的相对比例(范围0-1),position的两个值分别对应x、y方向的位置。

  • 调整字体大小与类型:

    legend char size 1.8  # 字体大小可按需调整
    legend font \"Helvetica\"  # 指定字体,如Helvetica、Times等
    
  • 修改图例框样式:

    legend box on  # 显示边框(默认开启,off则隐藏)
    legend box color \"black\"  # 边框颜色
    legend box linewidth 1  # 边框线宽
    legend box margin 0.2  # 框内文字与边框的间距
    legend char gap 0.15  # 图例符号与文字的间距
    

将上述命令添加到批处理文件末尾即可生效。

问题2:通过Bash技巧简化图例文本(无需重命名文件)

不需要修改原文件命名,直接在Bash中处理文件名提取目标部分,动态为每条曲线指定图例文本。修改你的bash命令如下:

(cd "${output}/!plots" && 
  # 匹配所有目标数据文件
  input_files=(RMSD.prot*)
  # 构建gracebat的参数数组
  grace_args=()
  for file in "${input_files[@]}"; do
    # 提取文件名中"RMSD.prot_"之后的部分(如从RMSD.prot_6nax得到6nax)
    legend_label="${file#RMSD.prot_}"
    # 依次添加图例文本和文件路径到参数列表
    grace_args+=("-legend" "string" "$legend_label")
    grace_args+=("$file")
  done
  # 执行绘图命令
  exec gracebat "${grace_args[@]}" -batch "${output}/!temp/combo.bfile" -printfile RMSD.prot.png -hardcopy)

原理说明:

  • ${file#RMSD.prot_}是Bash参数扩展语法,会删除变量file开头的RMSD.prot_前缀,直接得到简化后的标签。
  • 循环遍历每个文件,用-legend string <label>逐个指定对应曲线的图例,替代原来的-legend load(后者会直接用完整文件名作为图例)。

这种方式既保留了原文件的命名结构,又能得到简洁的图例文本。

内容的提问来源于stack exchange,提问作者James Starlight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 01:52:16