本文讲述内容并非是Excel雷达图设计时的本来用途,而是突发奇想,发现用它来绘制极坐标既符合极坐标的思想方法,方法又极其简单,尤其是二次曲线和一些特殊的螺线。与思想方法相比,初相和旋转方向的差异几乎可以不必顾及,因为那是很容易理解并有简单的数学方法来解决的。
Excel中的雷达图与解析几何中的极坐标既相似又相异。
主要的相似处就是:它们都是从一个中心点沿着射线方向出发,使用离开中心的径向距离,作为定位参数中的一个指标。
主要的相异处(另一相异处将在后面单独列出)就是:
极坐标是以向右方向(正东,方位角90°)为起始位置,以逆时针方向角度为正值,且往往以弧度计值,从而作为定位参数的另一个指标。极坐标的极角是任意角,可正可负,可大于一个圆周角、多个圆周角乃至于N个圆周角周而复始地旋转;
而雷达图没有角的概念,它是以参与作图的数据点个数来平分中心角,各个数据点按相同的角增量,再按上述第一个径向距离定位。如果使雷达图模拟一个圆周角,就要设置360个数据点。不必多于360,因为即使设置720、1080个数据点,它也是将一个周角等分成720份、1080份来处理。
基于上述分析,可以用Excel雷达图模拟极坐标来绘制一些极坐标方程的曲线,因为不需要将极坐标方程各点坐标转换成直角坐标后,再在直角坐标系绘制散点图,可以在雷达图直接绘制。不过要注意几点:数据点最好取360个(0~259);每个角度要化成弧度:1°≈0.017(弧度)
对于三角函数,如是以2π为周期的,在极坐标方程中表现为闭合0~2π之间的心脏线,如周期有所变化的,在0~2π之间的表现周而复始的多叶线;对于发散性的螺线,就要注意起始和终结处的处理。
先作准备工作:在M2单元格设定1°的角对应的弧度,对M2使用绝对引用。
A列从A3开始为X在[0,359]上取值,从0开始,到359,数据间隔为1;
B列从B3开始是公式,将角度换算成弧度:在B3中键入=A3*$M$2,对M2单元格中1°的角对应的弧度数的值使用绝对引用,对A3单元格的角度的值使用相对引用。然后向下拖曳复制到与A列相对应的B362:
先以三角函数的心脏线为例。
ρ=sinθ
在C3中键入=SIN(B3),对B3单元格中已换算好的θ取值的弧度数使用相对引用。然后向下拖曳复制到与A列相对应的C362。
只需选取C3:C362,选作雷达图即可。删去图例、数据标志等,就可得下图。这也是条封闭的曲线,与极坐标系做的同一曲线图差了90°这是起始位置相异所致。另外在图中也可以看到雷达图对于负值的处理:
ρ=cosθ
在D3中键入=COS(B3),对B3单元格中已换算好的θ取值的弧度数使用相对引用。然后向下拖曳复制到与A列相对应的D362。
只需选取D3:D362,选作雷达图即可。删去图例、数据标志等,就可得下图。这也是条封闭的曲线,与极坐标系做的同一曲线图差了90°这是起始位置相异所致。另外在图中也可以看到雷达图对于负值的处理:
ρ=10(1-sinθ)
在E3中键入=10-10*SIN(B3),对B3单元格中已换算好的θ取值的弧度数使用相对引用。然后向下拖曳复制到与A列相对应的E362。
只需选取E3:E362,选作雷达图即可。删去图例、数据标志等,就可得下图。由于表达式计算时已无负值,坐标轴的最大最小值的处理已按数据点的极值自动调整:
ρ=10(1+cosθ)
在F3中键入=10+10*COS(B3),对B3单元格中已换算好的θ取值的弧度数使用相对引用。然后向下拖曳复制到与A列相对应的F362。
只需选取F3:F362,选作雷达图即可。删去图例、数据标志等,就可得下图。由于表达式计算时无负值,坐标轴的最大最小值的处理已按数据点的极值自动调整:
当周期改变为2π/n时,正弦或余弦函数在0~2π之间,可以出现n次周而复始的现象,其在极坐标中的图象就会呈现所谓的多叶线,下面以三叶线和五叶线为例
ρ=10sin3θ 三叶线
在G3中键入=$K$2*SIN(B3*3),$K$2对K2单元格中预先设置的数值使用相对引用。对B3单元格中已换算好的θ取值的弧度数使用相对引用。然后向下拖曳复制到与A列相对应的G362。
只需选取G3:G362,选作雷达图即可。删去图例、数据标志等,就可得下面的三叶线图:
ρ=10sin5θ 五叶线
在H3中键入=$K$2*SIN(B3*5),$K$2对K2单元格中预先设置的数值使用相对引用。对B3单元格中已换算好的θ取值的弧度数使用相对引用。然后向下拖曳复制到与A列相对应的H362。
只需选取H3:H362,选作雷达图即可。删去图例、数据标志等,就可得下面的五叶线图:
极坐标方程中最与众不同的就是极角的弧度与实数相乘而得的阿基米德螺线一类螺线。
古希腊数学家阿基米德(前287-前212)不只对物理做出了贡献,他的几何学研究也称得上是希腊数学的巅峰。他不光研究圆、椭圆、抛物线、旋转抛物体,还提出了一种特殊的螺旋线,这种螺旋线由两种运动形成:设想一个虫子站在匀速旋转的圆盘之上,从圆心沿某个半径向外爬行,它的影子会在天花板上绘出一条螺线。这螺线就是阿基米德螺线。
阿基米德螺线又称“等速螺线”。当一点P沿动射线OP用速度v做等速率直线运动的同时,这条射线又以等角速度ω绕点O旋转,点P的轨迹称为“阿基米德螺线”,其极坐标表示式是:
ρ=aθ
这里a为实数,ρ是点P到极点的距离,θ是用弧度表示的射线与极轴的夹角。
尤其注意的是:角θ是以弧度表示的角。弧度这一概念在中学数学中介绍过。初接触弧度制时,不少学生是在朦朦胧胧中接受的,知其然不知其所以然:角度蛮好的嘛,为什么要用弧度?弧度、弧度搞得人糊里糊涂。而在这里实际作图时,可以理解弧度作为实数可以和实数a相乘了,可以作出美丽的曲线了,如果是沿袭角度制,两者相乘,那其结果就不伦不类、风马牛不相干了。以上只是 “为知新而温故”。
而在雷达图中可以直接作出阿基米德螺线
ρ=aθ
在I3中键入=$K$2* B3,$K$2对K2单元格中预先设置的数值使用相对引用。对B3单元格中已换算好的θ取值的弧度数使用相对引用。注意:这里使用角的弧度数与实数相乘了,会出现什么结果呢?向下拖曳复制到与A列相对应的I362。
只需选取I3:I362,选作雷达图即可。删去图例、数据标志等,就可得下面的阿基米德螺线(等速螺线)图:
稍稍注意该图就可以发现连接首末两数据点之间的一条虚线,该虚线格式是我特意设的,为的是说明前面提示的雷达图与极坐标的另一个相异处:在雷达图中各相邻数据点默认都会有线条连接,在最后一个数据点和第一个数据点之间也会自动连线,因此每一个系列的折线都是一个闭合图形。极坐标不具有此特性。
在本例中,第一个数据,θ=0,ρ=0;末数据θ=2π时,ρ=10π=62.4。显然首尾两点相距甚远,但由于雷达图的缘故,两点直接连上了。我为了说明这个问题,将其设置为红色虚线。
本例之前的例子都是使用三角函数进行计算,由于周期函数的缘故,数据都会周而复始,首尾数据相同,数据点自动重合,曲线也会很自然地首尾相接,这种图形的闭合很自然。但是当遇到类似于等速螺线、对数螺线之类逐渐发散展开的螺线,第一个数据与最后一个数据不相同时,雷达图也会强制性地将其连接,强迫图形闭合,这种闭合图形就极不自然。
以极坐标系中阿基米德螺线为例与之相比,除了初相以及旋转方向不同之外,两者主要差异也就在这首尾相接的线条上。请看在极坐标系中阿基米德螺线ρ=10 θ的曲线图:
其实只要单独选中这一段数据线,对这一连线单独设置格式,使其颜色为无色即可,使原本存在的线条淡出视线。如下图所示:
类似的,还可以处理对数螺线:
ρ=αe^(kφ)极坐标方程曲线α=10,e=2.71828,k=0.218
在J3中键入 =10*(2.71828^(0.218*B3))。对B3单元格中已换算好的θ取值的弧度数使用相对引用。注意:这里使用角的弧度数与实数相乘之后再作为自然对数e的指数,向下拖曳复制到与A列相对应的J362。
只需选取J3:J362,选作雷达图即可。删去图例、数据标志等,再单独选中连接首尾数据点的一段数据线,将其颜色为无色即可(仔细看可以看到两点在作图时出现的连线,我以线条颜色透明度较大来处理,淡化视觉感受,从而忽略它的存在),就可得下面的对数螺线图:
以上不是雷达图的本意,我只不过利用它与极坐标的相似处可以更方便地直接利用极坐标的概念绘制极坐标曲线图而已。