如何将Gnuplot 5.2的gnuplot极极限制在180度范围内?

时间:2018-09-11 16:09:17

标签: gnuplot

我正在创建Matt in 2015发布的看似重复的问题,但是,由于我正在使用Gnuplot 5.2,因此Christoph发布的答案目前对我不起作用。

当我使用Matt的输入日期和Christoph的脚本时,最终得到以下结果:

Picture here

可以看出,该图的下半部分(第3和第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

要解决我自己的问题,我想得到一个非常相似的情节,但只有第二和第三象限。

我的代码:

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

当前生成的图片here

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在我看来,即使数据本身以度为单位,gnuplot 5.2中的trange始终以弧度而不是度为单位。这似乎是一个错误,但是您可以解决它。

在5.2中,请勿设置xrange或yrange以限制极性模式下的数据;使用rrange和trange。 xrange和yrange不仅会影响数据,还会影响整个绘图布局。

还请注意,您可以使用命令set theta top将theta上的原点移到顶部。如果这样做,则不必将每个数据点添加90°。

假设“仅第二象限和第三象限”表示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

请注意,我将弧度(而不是度)设置为trange来解决该错误。 使用gnuplot 5.2.4的输出已附加enter image description here