用gnuplot绘制获得的权力

时间:2013-10-09 09:16:31

标签: gnuplot frequency spectrum

我想在不同的无线频道上绘制接收功率。对于每个通道,我有三个值,我想将它们绘制成堆叠。

实际上,这是我的剧本:

set boxwidth 0.6 relative
set ylabel "dBm"
set xlabel "Channel"
set style fill solid
set key off
plot "RR1" using 1:2 with boxes, "RR2" using 1:2 with boxes, "RR3" using 1:2 with boxes

问题在于,由于它们是负值(dBm),因此它从0到它找到的值进行绘制,因此最高功率位于顶部。我想绘制一个有点反转的图像,蓝色框从底部开始到达到它的值,而其他两个值则相同。

enter image description here

有什么想法吗?

我的数据看起来像这样

21.0 -93.9207
22.0 -92.241
23.0 -93.452

1 个答案:

答案 0 :(得分:1)

一种可能性是使用boxxyerrorbars绘图风格:

reset
set ylabel "dBm"
set xlabel "Channel"
set style fill solid
set key off
set style data boxxyerrorbars

set xtics 1
set autoscale xfix
set offset 0.5,0.5,0,0

ylow = -100
plot for [i=3:1:-1] sprintf("RR%d", i) using 1:(0.5*($2+ylow)):(0.3):(0.5*($2-ylow)) lt i

在这里,我使用固定的较低y - 值,但您也可以使用stats从数据文件中提取它,并进行其他调整。

using语句中,第二列给出了框中心,它是实际y - 值的平均值 - 下边界,第三列是x - delta(实际框宽度的一半),第四列是y - delta。

使用更多数据值,可以得到:

enter image description here