Gnuplot:添加一个填充矩形以突出显示绘图区域(x 轴上的 date/time)
Gnuplot: add a filled rectangle to highlight region of plot (date/time on x axis)
我需要 Gnuplot 方面的帮助:
我有一个包含以下内容的文件,看起来像下一行。 数据以逗号分隔,但第一列的日期时间如下:
20201-03-08 18:03:01, SAT1, 1002, 900, 10
.
.
.
这是我的数据图:
Plot_1
这是我想要的:突出显示两个区域,并带有标签。第一个区域将跨越 Y 轴上的 +/-50Hz 和整个 x 轴。第二个区域就是其他所有区域。
Wanted Plot Features
当我尝试简单地绘制一个矩形时,我可以做到 set object rectangle from 0, 50 to *,-50
但这不起作用...有什么建议吗?如果有人可以帮助我如何指定 x-range 如果它是 Date/Time...
我想我可以弄清楚其余的
编辑:这是我的完整 gnuplot 代码:
set term pngcairo size 1600,900
set datafile sep ','
set datafile missing "NaN"
set key font ',17'
set key left top
#set key opaque
set object 1 rectangle from graph 0,50 to graph 1,-50
set object 1 fillstyle solid fillcolor "light-green"
set object 1 behind
set title "Offsets adjust" font 'Ubuntu-Mono-Regular, 24'
set timestamp "Graph Generated (UT): \n%Y-%m-%d %H:%M:%S" top font 'Arial,18'
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set xlabel "Date\nTime" font 'Consolas,12'
set ylabel 'Amount of Change (Hz)' font 'Consolar,16'
set xtics font 'Consolas,16'
set ytics 20 font 'Consolas,16'
set yrange [-150:150]
set grid
set border back
set xzeroaxis linetype 2 linewidth 2.5
set output "/home/temp/temp/abode/beacon_offsets.png"
plot "/home/temp/temp/abode/SAT_1_2200_offset_trend.txt" using 1:7 title 'SAT_1 Offset' with points ps 2 lw 4 lc 8, \
"/home/temp/temp/abode/SAT_1_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_2_2200_offset_trend.txt" using 1:7 title 'SAT_2 Offset' with points ps 2 lw 4 lc 7, \
"/home/temp/temp/abode/SAT_2_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_3_2200_offset_trend.txt" using 1:7 title 'SAT_3 Offset' with points ps 2 lw 4 lc 6, \
"/home/temp/temp/abode/SAT_3_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_4_2200_offset_trend.txt" using 1:7 title 'SAT_4 Offset' with points ps 2 lw 4 lc 5, \
"/home/temp/temp/abode/SAT_4_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_5_2200_offset_trend.txt" using 1:7 title 'SAT_5 Offset' with points ps 2 lw 4 lc 4, \
"/home/temp/temp/abode/SAT_5_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_6_2200_offset_trend.txt" using 1:7 title 'SAT_6 Offset' with points ps 2 lw 4 lc 3, \
"/home/temp/temp/abode/SAT_6_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle
这是截图:
在这种情况下,您想要填充绘图的整个宽度,因此您可以使用 graph
而不是沿 x 轴的时间坐标。 y轴(其实就是“first
y轴”)坐标可以直接使用。您还需要确保绘制矩形 behind
图。
set object 1 rectangle from graph 0, first 50 to graph 1, first -50
set object 1 fillstyle solid fillcolor "light-green"
set object 1 behind
我需要 Gnuplot 方面的帮助:
我有一个包含以下内容的文件,看起来像下一行。 数据以逗号分隔,但第一列的日期时间如下:
20201-03-08 18:03:01, SAT1, 1002, 900, 10
.
.
.
这是我的数据图:
Plot_1
这是我想要的:突出显示两个区域,并带有标签。第一个区域将跨越 Y 轴上的 +/-50Hz 和整个 x 轴。第二个区域就是其他所有区域。
Wanted Plot Features
当我尝试简单地绘制一个矩形时,我可以做到 set object rectangle from 0, 50 to *,-50
但这不起作用...有什么建议吗?如果有人可以帮助我如何指定 x-range 如果它是 Date/Time...
编辑:这是我的完整 gnuplot 代码:
set term pngcairo size 1600,900
set datafile sep ','
set datafile missing "NaN"
set key font ',17'
set key left top
#set key opaque
set object 1 rectangle from graph 0,50 to graph 1,-50
set object 1 fillstyle solid fillcolor "light-green"
set object 1 behind
set title "Offsets adjust" font 'Ubuntu-Mono-Regular, 24'
set timestamp "Graph Generated (UT): \n%Y-%m-%d %H:%M:%S" top font 'Arial,18'
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set xlabel "Date\nTime" font 'Consolas,12'
set ylabel 'Amount of Change (Hz)' font 'Consolar,16'
set xtics font 'Consolas,16'
set ytics 20 font 'Consolas,16'
set yrange [-150:150]
set grid
set border back
set xzeroaxis linetype 2 linewidth 2.5
set output "/home/temp/temp/abode/beacon_offsets.png"
plot "/home/temp/temp/abode/SAT_1_2200_offset_trend.txt" using 1:7 title 'SAT_1 Offset' with points ps 2 lw 4 lc 8, \
"/home/temp/temp/abode/SAT_1_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_2_2200_offset_trend.txt" using 1:7 title 'SAT_2 Offset' with points ps 2 lw 4 lc 7, \
"/home/temp/temp/abode/SAT_2_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_3_2200_offset_trend.txt" using 1:7 title 'SAT_3 Offset' with points ps 2 lw 4 lc 6, \
"/home/temp/temp/abode/SAT_3_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_4_2200_offset_trend.txt" using 1:7 title 'SAT_4 Offset' with points ps 2 lw 4 lc 5, \
"/home/temp/temp/abode/SAT_4_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_5_2200_offset_trend.txt" using 1:7 title 'SAT_5 Offset' with points ps 2 lw 4 lc 4, \
"/home/temp/temp/abode/SAT_5_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle, \
"/home/temp/temp/abode/SAT_6_2200_offset_trend.txt" using 1:7 title 'SAT_6 Offset' with points ps 2 lw 4 lc 3, \
"/home/temp/temp/abode/SAT_6_2200_offset_trend.txt" using 1:7:5 with labels font ',18' offset 1,1 notitle
这是截图:
在这种情况下,您想要填充绘图的整个宽度,因此您可以使用 graph
而不是沿 x 轴的时间坐标。 y轴(其实就是“first
y轴”)坐标可以直接使用。您还需要确保绘制矩形 behind
图。
set object 1 rectangle from graph 0, first 50 to graph 1, first -50
set object 1 fillstyle solid fillcolor "light-green"
set object 1 behind