【绘图】柱状图玩出新花样-“滑珠图“

2020-02-13 17:14:20 浏览数 (1)

散点图、折线图、柱状图,“三大“经典可视化图形。其中,柱状图作为表述不同分组数值高低的经典图形,被无数次用在文章写作中。我们看到的柱状图,绝大多数是这样子的:

不管是用Excel,还是R语言的base系统、ggplot系统,做出来的图也都是大同小异。有没有什么图形可以标新立异,用一种完全不同的模式来表达跟柱状图一样的意思的?今天,我们来看一个不一样的图形,散点图中的“异类“:滑珠图。可能很多人没听过“滑珠图”这样一个概念,我们先来看看图形:

上面这个就是滑珠图,一眼看上去,你可能会认为是一个散点图。可不是么,满屏都是点,不过,细看之下,你会发现在点的旁边都有一条直线,这个直线的长短其实跟我们的柱状图是一个意思,线条越长,代表数值越高。图中的点就像是在线条上滑动的一样,所以称之为“滑珠图”。这个图形看上去比柱状图更“眉清目秀“一些,毕竟出镜率不是那么高,比柱状图更加超凡脱俗一些。

输入数据

那么,这个图应该怎么做呢?先看看用来绘图的数据。

数据其实很简单,第一列,样本名称,这里我们用的是基因名;第二列,数值;第三列,分组信息,其实第三列是可有可无的,当你存在分组信息的时候,可以按照不同的颜色来标明不同的分组。

开始绘图

滑珠图可以通过ggpubr中的ggdotchart()函数进行绘制,以上述的图形为例,通过ggdotchart()函数可以绘制出简单的滑珠图:

但是这样的图形跟我们刚才看到的不太一样,没有直线,所以不能说是完整的滑珠图。

初级调整

怎么绘制真正意义上的滑珠图?很简单,只要添加一个参数就可以了。

图形终于画出来了,这样的滑珠图看上去就是跟我们平时的柱状图一个意思,点越高,数值也越高。

中级调整

在很多文章中,柱状图经常是水平的,特别是很多功能富集分析的结果,常常用水平柱状图表示。那么,如何绘制水平的滑珠图呢?绘制水平的滑珠图其实也很简单,也是只要添加一个参数即可。

高级调整

上面的图基本上能够满足我们的要求了,但是这么多次教程下来,大家也都知道我们可是力求完美的。要做一个完美的图形,还有很多参数需要去调整,比如figure legend的位置、数值由高到低的排序、点的大小等等问题,在dotchart()中有很多可以做调整的参数,我们在这里就不一一罗列了,直接看图吧。

0 人点赞