Как ограничить полярность gnuplot диапазоном 180 градусов для Gnuplot 5.2? - PullRequest
0 голосов
/ 11 сентября 2018

Я создаю, казалось бы, дублирующий вопрос, опубликованный Мэттом в 2015 году , однако ответ, опубликованный Кристофом, сейчас не работает для меня, так как я использую Gnuplot 5.2.

Когда я использую дату ввода Мэтта и сценарий Кристофа, я получаю следующий результат:

Изображение здесь

Как видно, нижняя половина (третья4-й квадрант) участка, но его не должно быть.

reset

set terminal pngcairo font ',10'

set polar
set angle degrees
set size ratio 1
set lmargin 8
set style line 11 lc rgb 'gray80' lt -1
set grid polar ls 11

unset border
unset tics

set xrange [-1:1]
set yrange [0:1]
set size ratio -1

r = 1
set rtics 0.166 format '' scale 0
set label '0°' center at first 0, first r*1.05
set label '-90°' right at first -r*1.05, 0
set label '+90°' left at first r*1.05, 0

set for [i=1:5] label at first r*0.02, first r*((i/6.0) + 0.03) sprintf("%d dB", -30+(i*5))
unset raxis

set key outside top right

set output 'polar.png'
plot 'norm_polar_1000.txt' w lp ls 1 t '1k'

Данные:

180 0.657067
172.5 0.6832
165 0.717767
157.5 0.7461
150 0.7747
142.5 0.806167
135 0.835633
127.5 0.865167
120 0.890533
112.5 0.918133
105 0.929633
97.5 0.9566
90 0.9632
82.5 0.9566
75 0.929633
67.5 0.918133
60 0.890533
52.5 0.865167
45 0.835633
37.5 0.806167
30 0.7747
22.5 0.7461
15 0.717767
7.5 0.6832
0 0.657067

Чтобы разобраться с моей собственной проблемой, я бы хотел получить оченьпохожий сюжет, но вместо него только 2-й и 3-й квадрант.

Мой код:

reset

set terminal pngcairo font ',12'

set polar
set angle degrees
set size ratio -1
set tmargin 3
set bmargin 3

set style line 11 lc rgb 'gray80' lt -1
set grid polar ls 11

unset border
unset tics
unset key

r=1
set rrange [0:r]
set xrange [-1:0]
set yrange [-1:1]


rOffset = 1.1

set rtics 0.166 format '' scale 0
set label '0°' center at first 0, first r*rOffset
set label '90°' right at first -r*rOffset, 0
set label '180°' center at first 0, first -r*rOffset

set output 'TestPolar.png'

plot 'exampleData.txt' u ($1+90):2

exampleData.txt:

10  0.1
30  0.2
50  0.3
70  0.4
90  0.5
110 0.6
130 0.7
150 0.8
170 0.9

Текущее изображение здесь

Есть идеи?

1 Ответ

0 голосов
/ 12 сентября 2018

Мне кажется, что диапазон gnuplot в 5.2 всегда в радианах, а не в градусах, даже если сами данные представлены в градусах.Это похоже на ошибку, но вы можете обойти это.

В 5.2 не устанавливайте xrange или yrange для ограничения данных в полярном режиме;использовать Rrange и Trange.xrange и yrange влияют на весь макет графика, а не только на данные.

Также обратите внимание, что вы можете переместить начало координат тета-вверх, используя команду set theta top.Если вы сделаете это, вам не нужно добавлять 90 ° к каждой точке данных.

При условии, что под "только 2-м и 3-м квадрантом" вы подразумеваете 90

set polar
set angle degrees
set size ratio -1
set tmargin 3
set bmargin 3

set style line 11 lc rgb 'gray80' lt -1
set grid polar ls 11

unset border
unset tics
unset key

r=1
set rrange [0:r]
set trange [ pi/2 : 3*pi/2 ]
set theta top

set rtics 0.166 format '' scale 0
set ttics (0,90,180) format "%g°"

plot 'exampleData.txt' using ($1):2 with lines

Обратите внимание, что для обхода ошибки я установил значение радиана в радианах, а не в градусах.Вывод с использованием gnuplot 5.2.4 прикреплен enter image description here

...