Python Matplotlib:在极坐标图上使用非线性比例

Python Matplotlib:在极坐标图上使用非线性比例,python,matplotlib,Python,Matplotlib,我想画一个测量过的天线辐射方向图。目前我正在使用以下脚本: #/usr/bin/env蟒蛇3-u #vim:设置ai et ts=4 sw=4: 从数学导入pi 将matplotlib.pyplot作为plt导入 导入csv xs=[] ys=[] 将open('raw-data.csv',换行符='')作为f: 对于csv.reader中的行(f,分隔符=',',quotechar='”): xs+=[2*pi*float(行[0])/360] ys+=[浮动(第[1]行]] max_y=ma

我想画一个测量过的天线辐射方向图。目前我正在使用以下脚本:

#/usr/bin/env蟒蛇3-u
#vim:设置ai et ts=4 sw=4:
从数学导入pi
将matplotlib.pyplot作为plt导入
导入csv
xs=[]
ys=[]
将open('raw-data.csv',换行符='')作为f:
对于csv.reader中的行(f,分隔符=',',quotechar='”):
xs+=[2*pi*float(行[0])/360]
ys+=[浮动(第[1]行]]
max_y=max(ys)
ys=[y-y中y的最大值y]
dpi=80
图=plt.图(dpi=dpi,figsize=(512/dpi,384/dpi))
ax=plt.子地块(111,投影='polar')
最大设定θ偏移量(2*pi*90/360)
ax.plot(xs,ys,线型='实心',线宽=3)
ax.set_rmax(0)
ax.set_rticks([-6*i表示范围(0,7)])
ax.为范围(1,7)内的i设置标签(['']+[str(-6*i))
最大设置标签位置(0)
最大设定值(范围(0,360,15))
ax.设置θ方向(-1)
ax.grid(真)
图savefig('linear.png'))
这里是raw-data.csv:

0,-31.4
10,-31.9
20,-32
30,-32.4
40,-38.1
50,-41.1
60,-44.5
70,-59
80,-73
90,-67.3
100,-70.5
110,-62.1
120,-58.2
130,-55.7
140,-55.6
150,-54.7
160,-50.3
170,-43.7
180,-40.8
190,-41.2
200,-43.2
210,-45.9
220,-49.7
230,-53.8
240,-57.3
250,-60.6
260,-65.2
270,-61.6
280,-61.1
290,-60.8
300,-52.9
310,-46.2
320,-39.7
330,-35.1
340,-33.3
350,-31.9
360,-31.4
我几乎对结果感到满意:

但我希望比例有所不同,就像通常使用的那样。下面是一个例子:

请注意,比例是非线性的。以下是ARRL天线手册对其的描述:

ARRL使用的改进对数网格有一个同心网格线系统,其间距为信号电压值的0.89倍对数。在该网格中,可区分距离主波瓣30和40 dB的副波瓣。此类波瓣在VHF和UHF工作中值得关注。在0分贝和 –3 dB明显大于–20和–23 dB之间的间距,而–20和–23 dB之间的间距又明显大于–50和–53 dB之间的间距。 例如,0到–3 dB所覆盖的标度距离约为图表半径的1/10。下一个3 dB增量(到–6 dB)的标度距离略小,准确地说是前一个的89%。下一个3 dB增量(到–9 dB)的标度距离同样是秒的89%。刻度的构造使级数在图表中心以–100 dB结束。 因此,间距的周期性通常对应于天线性能变化的相对重要性。本出版物中的天线方向图绘制在修改后的对数网格上,类似于图A-(C)所示

我不需要ARRL使用的确切方法,但看起来类似的方法会很好。我尝试了不同的方法,但没有成功。例如,当我尝试使用
ax.set\r缩放('function'),…
时,我得到如下图像:

如果您能给我一点建议,我将不胜感激