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

基于gnuplot+AWK修改氢键数据列选择逻辑生成条形图

修改AWK逻辑配合gnuplot生成氢键数据条形图

核心AWK逻辑修改

原脚本仅提取第3列作为x轴标签,现在需要根据lig_前缀判断提取目标列,同时保留Frac>0.05的筛选条件,对应的AWK命令如下:

awk '$5 > 0.05 { if ($1 ~ /^lig_/) print $3, $5; else if ($3 ~ /^lig_/) print $1, $5 }' hydrogen_bonds.dat
  • 逻辑说明:
    • 先筛选第5列(Frac)数值大于0.05的行
    • 若第1列(Acceptor)以lig_开头,输出第3列(Donor)和第5列数据
    • 若第3列(Donor)以lig_开头,输出第1列(Acceptor)和第5列数据
    • 题目明确lig_仅出现在其中一列,无需处理两列都含该前缀的情况

完整gnuplot脚本示例

将上述AWK命令整合进gnuplot脚本,生成2D条形图:

set terminal pngcairo enhanced font 'Arial,10' size 800,600
set output 'hbond_barplot.png'

set title '氢键占比条形图(Frac>0.05)'
set xlabel '配体相互作用对象'
set ylabel '占比(Frac)'
set yrange [0:*]

# 设置x轴标签旋转避免重叠
set xtics rotate by 45 right

# 读取AWK处理后的数据绘制条形图
plot '< awk ''$5 > 0.05 { if ($1 ~ /^lig_/) print $3, $5; else if ($3 ~ /^lig_/) print $1, $5 }'' hydrogen_bonds.dat' \
     using 2:xtic(1) with boxes fill solid 0.7 title ''
  • 脚本说明:
    • set terminal和set output指定输出格式为PNG图片
    • xtics rotate设置x轴标签旋转45度,避免长标签重叠
    • using 2:xtic(1)表示用第2列数据作为条形高度,第1列作为x轴标签
    • with boxes fill solid设置实心条形样式

额外优化提示

  • 如果你的数据文件用制表符分隔,需给AWK加上-F'\t'参数,确保列识别正确:
    awk -F'\t' '$5 > 0.05 { if ($1 ~ /^lig_/) print $3, $5; else if ($3 ~ /^lig_/) print $1, $5 }' hydrogen_bonds.dat
    
  • 若需要调整条形颜色,可在with boxes后添加linecolor rgb "#2E86AB"这类颜色参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:45:46