用R画弧形图(Arc Diagram)

Python012

用R画弧形图(Arc Diagram),第1张

在前几篇里我用cytoscape软件构建了网络图( 如何将WGCNA导出的基因共表达网络进行可视化 ),见下图。但是看上去好像什么信息也看不出来,因为基因和基因之间的connectivity实在是太多了,全都糊在一起,看不出有哪些基因位于网络的中心,或者说看不出哪些基因和其他基因的联系很多。

当然你可以把cytoscape里的每一个基因的degree.layout导出来,里面有每一个基因有多少条edge与其相连,然后做一个bar图( 用R画Circular barplot图 ),但是对于图里的数字(比如60和20)并没有非常直观的展示。偶然看到里一篇文章写的非常好( R数据可视化18:弧形图 ),做出的图形是这样的:

弧形图需要的数据是从cytoscape里导出的,你也可以自己制作(如果数据不多的话):

导出的表长这样:

我们需要的是这个表的“name”列。你需要在excel里把“ (interacts with) ”替换成空格(注意括号两边也有空格),这一步在excel里相当简单,就不赘述了。替换完成后的表长这样:

现在得到的表格就是我们需要的。

今天我们将通过一个例子来说明如何分析两个定类变量。

文章背景:我们想研究CFPS2010和CFPS2012青少年对自身的职业期望。

如表1,我们将原始的职业期望编码整合成9类(职业编码的大类)和其他。由于我们想分析同一个人在跨轮次调查中职业期望的稳定性情况,故将分析对象定义为在CFPS2010和CFPS2012中都回答了自己对自己职业期望的受访者。如表2所示,进行重编码后的数据是宽数据,样本量是1920,数据集名字为expect。我们在进行后续分析时,要将其转换为绘图所需的其他形式。

⭐分析方式1——列联表、频数与频率

在表3中,我们展示了2010与2012年青少年职业期望的交叉统计情况。同时该表内,也附上了频数(落在各类别中的数据个数)、⽐例(某⼀类别数据占全部数据的⽐值)、百分⽐(将对⽐的基数作为100⽽计算的⽐值,包括百分比、行百分比和列百分比)。

⭐分析方式2——统计图表

分析前色彩讲解:预设渐变色,我们这里介绍2个色彩包。

1)专门生产系列颜色的RColorBrewer包,详见图1中的系列颜色。

library(RColorBrewer)

display.brewer.all()

2)色盲友好的配色方案viridis包,详见图2中的系列颜色。

library(viridis)

?viridis()#可以看到更多对这组包色彩的说明

接下来我们来画图吧~【注:图3-图6中的类目数字的含义:1)国家机关、党群组织、企业、事业单位负责人;2)医生;3)教师;4)专业技术人员(刨除教师和医生);5)办事人员和有关人员;6)商业、服务业人员;7)农、林、牧、渔、水利业生产人员;8)生产、运输设备操作人员及有关人员;9)军人;10)其他。】