如何在Gnuplot绘制的自由能图中添加阶梯实线与连接虚线?
Gnuplot实现阶梯式反应坐标图(带虚线连接)
数据文件准备
先把反应中间体和能量数据保存为reaction.dat,格式如下:
O_{2} 0 O@^*_{2} -1 OOH^* -2 O^* -3 OH^* -4 H_{2}O -5
Gnuplot脚本实现
以下是完整的绘图脚本,包含阶梯样式和虚线连接的设置:
# 配置输出终端(这里用png,可替换为pdfcairo生成矢量图) set terminal pngcairo enhanced font 'Arial,12' size 800,600 set output 'reaction_profile.png' # 设置图表标题与坐标轴 set title '反应坐标能量分布' set xlabel '反应中间体' set ylabel '相对能量 (eV)' set yrange [-6:1] # 根据你的能量范围调整上下限 # 自定义X轴标签:将非数值的中间体映射到1-6的数值位置 set xtics ('O_{2}' 1, 'O@^*_{2}' 2, 'OOH^*' 3, 'O^*' 4, 'OH^*' 5, 'H_{2}O' 6) set xtics rotate by 45 right # 旋转标签避免重叠 # 定义线条样式:实线阶梯+虚线连接 set style line 1 lc rgb '#0060ad' lw 2 # 蓝色实线阶梯 set style line 2 lc rgb '#ad0000' lw 1 dt 2 # 红色短虚线 # 绘图:先画阶梯,再叠加虚线连接各点 plot 'reaction.dat' using ($0+1):2 with steps ls 1 title '阶梯能量', \ '' using ($0+1):2 with lines ls 2 title '能量变化'
关键参数说明
($0+1):把数据的行号(从0开始计数)转换为1-6的连续数值,用来匹配X轴的标签位置with steps:生成阶梯函数,默认是右阶梯(每个点向右延伸阶梯),如果需要左阶梯可改为with steps leftdt 2:设置虚线样式,dt(dash type)后的数字对应不同虚线模式,2是常用的短虚线set xtics rotate:旋转X轴标签,避免长标签互相重叠
可选调整
- 若需要更精细的阶梯控制,可使用
steps center让阶梯以数据点为中心 - 终端换成
pdfcairo可以生成高清矢量图,适合学术论文使用
内容的提问来源于stack exchange,提问作者Courtney Brea
相关产品推荐
相关产品推荐

