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

如何使用gnuplot在2D绘图中添加指定时间点的水平线?

在Gnuplot快照图中添加特定时间点的水平线

没问题!要在你用gnuplot绘制的快照热力图里,给特定的Snapshot/Time(y轴)位置添加水平线,有两种简单好用的方法,我给你详细说明:

方法一:使用set arrow命令(推荐)

这个方法可以灵活定义水平线的样式,并且不会干扰原有的绘图逻辑。set arrow能创建贯穿整个x轴范围的水平线,你可以自定义颜色、线型、线宽等属性。

比如你想在Snapshot 3和Snapshot 6的位置添加红色虚线和蓝色实线,只需要在plot命令前加入以下代码:

# 在y=3(Snapshot 3)位置添加红色虚线
set arrow 1 from graph 0, first 3 to graph 1, first 3 nohead lc rgb "#ff0000" lt 2 lw 2
# 在y=6(Snapshot 6)位置添加蓝色实线
set arrow 2 from graph 0, first 6 to graph 1, first 6 nohead lc rgb "#0000ff" lt 1 lw 2

参数说明:

  • graph 0/graph 1:表示水平线从x轴的最左端延伸到最右端
  • first 3:指定水平线的y轴位置为3(对应你的Snapshot编号)
  • nohead:去掉箭头(因为我们需要的是水平线,不是箭头)
  • lc rgb "#ff0000":设置线的颜色(也可以用lc "red"这种直观的颜色名称)
  • lt 2:设置线型(2是虚线,1是实线,3是点线等)
  • lw 2:设置线宽(数值越大线越粗)

方法二:在plot语句中直接绘制水平线

如果你想把水平线和原绘图逻辑放在同一条plot命令里,可以直接添加水平线的绘制语句,用反斜杠换行保持代码整洁:

plot for [i=1:n] './snapshots/'. snapshot(n+1-i) using 1:2:3 with boxes linecolor palette, \
     3 with lines lc rgb "#ff0000" lt 2 lw 2, \
     6 with lines lc rgb "#0000ff" lt 1 lw 2

这里3 with lines就是绘制y=3的水平线,同样可以自定义样式。注意把水平线的语句放在后面,这样水平线会覆盖在盒子图上方,显示更清晰。

修改后的完整代码示例(以方法一为例)

set terminal pngcairo n=1000 # Number of snapshots
load 'color.pal' # cbrange[-6:-2]
unset key
set style fill solid
set ylabel "Snapshot/Time"
set xrange[0:2021]
set yrange[0:8]

# 添加自定义水平线:根据你的需求修改y轴位置即可
set arrow 1 from graph 0, first 3 to graph 1, first 3 nohead lc rgb "#ff0000" lt 2 lw 2
set arrow 2 from graph 0, first 6 to graph 1, first 6 nohead lc rgb "#0000ff" lt 1 lw 2

# This functions gives the name of the snapshot file
snapshot(i) = sprintf("snapshot_%04d.dat", i)
plot for [i=1:n] './snapshots/'. snapshot(n+1-i) using 1:2:3 with boxes linecolor palette

注意事项

  • 如果需要添加更多水平线,只需要增加set arrow的编号(3、4...)即可,不要重复使用同一编号
  • 可以根据你的可视化需求调整线的样式,比如用lc palette绑定你加载的color.pal颜色板,让水平线和图中颜色风格统一
  • 如果你设置了yrange,确保水平线的y值在你的y轴范围内,否则不会显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:02:23