【科研猫·绘图】三维饼图-增加厚度才能提升高度

2019-10-16 13:22:54 浏览数 (1)

饼图前面我们刚刚讲过,不少同学拿到代码以后跃跃欲试,都能顺利绘制出来。不过,有些爱动脑的同学会问,饼图二维的我能够做出来,那三维的该怎么画? 经常在一些高级图形中看到三维饼图,自己也想做一下,这样可视化的档次感觉瞬间就高级了。

我们发动一下小脑筋想一想,所谓二维是一个面,三维是一个立体,那么如果把二维的面变“厚”,那不就是三维的了?说起来是容易的,我们可以一起操作一下。

其实饼图的绘制方法有很多,像常用的Excel就可以做,但是Excel最大的弊端就是:不能输出矢量图!这个缺点极大地限制了Excel在科研绘图中的应用。今天我们重点学习一下,如何用R语言制作三维饼图。

输入数据

先来看看我们的数据。数据非常简单,分了单纯的两列,第一列是分组信息Group,还有一列是数值Value,共有四行。前面也说过了,饼图只能表示一个数据列。所以,除了分组,就只有一列数据。

图形绘制

现在我们开始画图,在R语言的绘制三维饼图需要使用plotrix包中的pie3D()函数,没错,就是pie3D(),非常好记,二维饼图的pie()函数加个3D就行。pie3D()函数也是需要两个参数,需要给出第一个参数就是:数值,也就是我们这个数据中的Value一列;第二个参数就是:数值的标签,也就是我们数据当中的Group一列。

所以我们可以直接使用

> pie3D(data$Value,labels=data$Group)

命令来做图,画出来就是这样的:

图形调整

这个图呢,看上去有点一般,当然,我们还有很多参数可以调整,使得这个图片看着更立体,更像三维图像。比如height参数可以控制厚度,theta参数控制图形的仰角:

还有两个非常重要的参数就是explode参数和shade参数,explode能够把饼图中不同的组别给拆分开来,而且explode的数值越大,拆分的越开。shade参数顾名思义就是阴影的意思,表示三维投影的深浅,数值越小颜色越深。

最后经过我们反复调整绘图参数,就可以得到自己心仪的图形了,是不是改变很大呢。

结语

R语言中有很多的绘图函数,这些函数使用起来往往是非常简单的,但是如果想要把图形做到非常优雅、高级,实现真正意义的高层次可视化,每个函数里面的参数都需要反复打磨调整,直至画出满意的图形。这个调整的过程经常是繁琐且耗费精力的,通常还需要丰富的绘图经验,乃至平面设计的知识。总之,绘图之路道阻且长,诸位加油吧。

0 人点赞