在 Gnuplot 中绘制垂直线以表示一维数据
Plot vertical lines in Gnuplot to represent one dimensional data
我正在尝试使用 Gnuplot 绘制 TCP 连接的带宽增长。
我有 2 个日志文件,一个有带宽,另一个有发生丢包的时间戳。我想在与带宽相同的图表中表示数据包丢失,可能在 X 轴(时间)上有一条垂直线。
请多多指教!
作为一个非常粗略的例子,这里是文件格式。
Bandwidth.dat
0.001 2
0.002 3
0.003 5
0.004 8
Packet_Drop.dat
0.006
0.12
0.39
所需情节:
抱歉,不知道如何快速制作更好的图表!
作为一种选择,您可以使用 impulses
绘图样式,它绘制从 y=0 到给定值的垂直线:
max = 10
plot 'Bandwidth.dat' using 1:2 with lines linecolor rgb 'black',\
'Packet_Drop.dat' using 1:(max) with impulses linecolor rgb 'red'
这个选项的缺点是,你必须知道y轴的最大值。你可以得到这个,例如通过绘制到 unknown
终端,然后使用 GPVAL_Y_MAX
值:
set terminal push # save current terminal
set terminal unknown
plot 'Bandwidth.dat' using 2
set terminal pop # restore terminal
plot 'Bandwidth.dat' using 1:2 with lines linecolor rgb 'black',\
'Packet_Drop.dat' using 1:(GPVAL_Y_MAX) with impulses linecolor rgb 'red'
(无法使用 stats
获取 自动缩放的 轴的最大值。)
或者,您可以将数据文件中的 x 值读入字符串并遍历单词并相应地设置一些箭头。在 Linux 上,使用
packet_drop = system('cat Packet_Drop.dat')
set for [w in packet_drop] arrow from first w, graph 0 to first w, graph 1 linecolor rgb 'red' nohead
plot 'Bandwidth.dat' using 1:2 with lines lc rgb 'black'
在 Windows 上它应该与
一起工作
packet_drop = system('type Packet_Drop.dat')
并且在使用 4.6 版本时需要使用 wgnuplot_pipes.exe
。
我正在尝试使用 Gnuplot 绘制 TCP 连接的带宽增长。
我有 2 个日志文件,一个有带宽,另一个有发生丢包的时间戳。我想在与带宽相同的图表中表示数据包丢失,可能在 X 轴(时间)上有一条垂直线。
请多多指教!
作为一个非常粗略的例子,这里是文件格式。
Bandwidth.dat
0.001 2
0.002 3
0.003 5
0.004 8
Packet_Drop.dat
0.006
0.12
0.39
所需情节:
抱歉,不知道如何快速制作更好的图表!
作为一种选择,您可以使用 impulses
绘图样式,它绘制从 y=0 到给定值的垂直线:
max = 10
plot 'Bandwidth.dat' using 1:2 with lines linecolor rgb 'black',\
'Packet_Drop.dat' using 1:(max) with impulses linecolor rgb 'red'
这个选项的缺点是,你必须知道y轴的最大值。你可以得到这个,例如通过绘制到 unknown
终端,然后使用 GPVAL_Y_MAX
值:
set terminal push # save current terminal
set terminal unknown
plot 'Bandwidth.dat' using 2
set terminal pop # restore terminal
plot 'Bandwidth.dat' using 1:2 with lines linecolor rgb 'black',\
'Packet_Drop.dat' using 1:(GPVAL_Y_MAX) with impulses linecolor rgb 'red'
(无法使用 stats
获取 自动缩放的 轴的最大值。)
或者,您可以将数据文件中的 x 值读入字符串并遍历单词并相应地设置一些箭头。在 Linux 上,使用
packet_drop = system('cat Packet_Drop.dat')
set for [w in packet_drop] arrow from first w, graph 0 to first w, graph 1 linecolor rgb 'red' nohead
plot 'Bandwidth.dat' using 1:2 with lines lc rgb 'black'
在 Windows 上它应该与
一起工作packet_drop = system('type Packet_Drop.dat')
并且在使用 4.6 版本时需要使用 wgnuplot_pipes.exe
。