• 免费服务热线
  • 400-065-6886
  • 电话:86(0)512-6295 9990
  • 传真:86(0)512-6295 9995
新闻中心

新闻媒体-太阳成tyc7111cc

发稿时间:2020-07-03来源:天昊生物





前几期我们有介绍pca的多种绘图方法,这里我们接着介绍几种新的绘图方法:ggpubr包进行二维绘图和scatterplot3d包绘制3d图。

加载ggpubr包

in [1]:

  • library(ggpubr)


数据准备


in [2]:
  • df = read.csv('3d.pca.site.csv',header = t)
  • head(df)
out[2]:


aggregate 计算中心点in [3]:
  • df_mean = aggregate(cbind(pca1, pca2) ~ sub_group, data = df, fun = mean)
  • df_mean$group = c('b','b','c','c')
  • df_mean
out[3]:


合并数据

in [4]:

  • data = merge(df,setnames(df_mean,c('sub_group','pca1_mean','pca2_mean','group')))
  • data

out[4]:



二维绘图


2.1 常规pca图

in [5]:

  • p <- ggplot(df, aes(x = pca1, y = pca2, colour = sub_group)) geom_point(size = 4)
  • p

out[5]:

增加形状

in [6]:

  • p1 = ggplot(df, aes(x = pca1, y = pca2, colour = sub_group,shape = group)) geom_point(size = 4)
  • p1

out[6]:


2.2 带中心点的pca图

in [7]:

  • q = p1 geom_point(data = df_mean, size = 6)
  • q

out[7]:


2.3 添加置信椭圆

in [8]:

  • r = q stat_ellipse( linetype = 2,level = 0.65,aes(group = sub_group, colour = sub_group))
  • r

out[8]:


2.4 指定杂志配色的绘图

in [9]:

  • # add group ellipses and mean points
  • # add stars
  • #
  • s = ggscatter(df, x = "pca1", y = "pca2",color = "sub_group", shape = "sub_group",palette = 'jco',ellipse = true, mean.point = true,star.plot = true)
  • s

out[9]:


2.5 连线放射

in [10]:

  • t = r geom_segment(data = data,mapping = aes(xend = pca1_mean, yend = pca2_mean))
  • t

out[10]:


2.6 外点连线

in [11]:

  • library(ggalt)

in [12]:

  • u = p geom_encircle(s_shape=1, expand=0)
  • u

out[12]:


2.7 波普样式

in [13]:

  • v = q geom_bkde2d()
  • v

out[13]:


2.8 多个图形绘制在一起

in [14]:

  • ggarrange( p,p1,q , r ,s ,t ,u,v, ncol =2 , nrow =4,legend='top',common.legend = t)

out[14]:



3d 绘图


in [15]:
  • # install.packages('scatterplot3d')
  • library(scatterplot3d)
in [16]:
  • attach(df)
in [17]:
  • color = c('red','black', 'blue','yellow')
  • colors=color[as.numeric(df$sub_group)]
  • colors
out[17]:
  • 'red' 'red' 'red' 'red' 'black' 'black' 'black' 'black' 'blue' 'blue' 'blue' 'blue' 'blue' 'blue' 'yellow' 'yellow' 'yellow' 'yellow'

由于pca1和pca2的贡献度更高,因此我们需要面向我们的x轴和z轴对应pca1和pca2

in [18]:

  • scatterplot3d(x =pca1, y = pca3, z = pca2,main = "pca", xlab='pca1', ylab="", zlab='pca2',pch = 19, color = colors, cex.symbols = 1.2)
  • legend("right", col = unique(colors), pch = 19, xpd = t, cex = 1, ncol =1,legend = unique(df$sub_group), bty = "n")

out[18]:


往期相关链接:

1、r基础篇






2、r进阶

3、数据提交

;

4、表达谱分析

5、医学数据分析


太阳成tyc7111cc copyright © 2012-2020 天昊基因科技(苏州)有限公司    all rights reserved   
网站地图