所以你想绘制一个极坐标函数,例如r(theta) = 1 + sin(theta)
。
绘制函数很容易,只需执行
set polar
plot 1+sin(t)
可以绘制一个简单的极坐标网格
set grid polar
但这raxis
与rtics
您想要的位置不同。指定自定义标签没有问题。但不支持角度标签,因此您需要手动设置它们。并且必须取消设置边界和其他轴和抽动。
要获得与您显示的完全相同的图像,请使用以下脚本:
set terminal pngcairo size 700,600 font ',10'
set output 'cardioid.png'
set angle degree
set polar
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 xtics
unset ytics
r=1
set rrange [0:r]
set rtics 0.166 format '' scale 0
set label '0°' center at first 0, first r*1.05
set label '180°' center at first 0, first -r*1.05
set label '90°' right at first -r*1.05, 0
set label '270°' 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
plot 0.5*(1+sin(t)) linewidth 2 t ''
结果:
这包括标签的一些偏移量,这取决于终端、画布大小和字体大小。所以你可能需要调整它们。
我不得不稍微增加顶部和底部边距(这里增加 3 个字符高度),以便为角度标签留出足够的空间。它们不包含在自动边距计算中,因为它们不属于某个轴。