Участок получил полномочия с gnuplot

Я хотел бы отобразить полученные мощности по различным беспроводным каналам. Для каждого канала у меня есть три значения, и я хочу нанести их на график.

На самом деле, это мой сценарий:

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

Проблема заключается в том, что, поскольку они являются отрицательными значениями (дБм), он строит графики от 0 до значения, которое он находит, и, таким образом, самая высокая мощность находится сверху. Я хотел бы построить несколько противоположное изображение, с синим прямоугольником, начиная снизу вверх до значения, которого оно достигает, и то же самое для двух других значений.

введите описание изображения здесь

Любая идея?

Мои данные выглядят так

21.0 -93.9207
22.0 -92.241
23.0 -93.452

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-value, но вы также можете извлечь его из файла данных с помощью stats и сделать некоторые другие настройки.

в using утверждение, второй столбец дает центр коробки, который является средним значением фактического y-значение и нижняя граница, третий столбец x-дельта (половина фактической ширины поля), а четвертый столбец y-дельт.

С некоторыми значениями данных это дает:

Другие вопросы по тегам