前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着Nature学绘图(6) PCA分析图表可视化

跟着Nature学绘图(6) PCA分析图表可视化

作者头像
R语言数据分析指南
发布2022-09-21 14:34:48
4900
发布2022-09-21 14:34:48
举报
文章被收录于专栏:R语言数据分析指南

❝本节来继续进行论文图表复现,主要还是基于「ggplot2」来进行数据可视化 ❞

❝近期系统整理了一下公众号所写过的一些经典文档,如果需要获取全部代码的欢迎加入小编的VIP交流群,「付费99元,周期一年」群内同步上传代码, 公众号右下角添加微信咨询即可 ❞

以往案例

本节来复现文章中的Fig3-h

安装并加载R包

代码语言:javascript
复制
package.list=c("tidyverse","ggrepel","factoextra","RColorBrewer")

for (package in package.list) {
  if (!require(package,character.only=T, quietly=T)) {
    install.packages(package)
    library(package, character.only=T)
  }
}

导入数据

代码语言:javascript
复制
df <- read_tsv("F3.xls")

PCA分析

代码语言:javascript
复制
pca <- df %>% column_to_rownames(var="Sample_id") %>% 
  select(-Subtype) %>% prcomp(.,scale. = TRUE)
每个主成分解释的总方差
代码语言:javascript
复制
var_explained <- pca$sdev^2/sum(pca$sdev^2)

数据可视化

代码语言:javascript
复制
fviz_pca_biplot(pca, axes = c(1, 2),geom.ind = c("point"),geom.var = c("arrow", "text"),
                pointshape = 20,pointsize=4,
                label ="var",repel = TRUE,col.var = "grey50",
                labelsize=0.5,
                col.ind = df$Subtype)+ 
  scale_color_manual(values = colorRampPalette(brewer.pal(12,"Paired"))(4))+
  labs(x=paste0("(PC1: ",round(var_explained[1]*100,2),"%)"),
       y=paste0("(PC2: ",round(var_explained[2]*100,2),"%)"),
       title="PCA-Biplot")+
  theme(panel.background = element_rect(fill = 'white', colour = 'black'),
        axis.title.x = element_text(colour="black",size = 12,margin = margin(t=12)),
        axis.title.y = element_text(colour="black",size = 12,margin = margin(r=12)),
        axis.text=element_text(color="black"),
        plot.title = element_text(size=12,colour = "black",hjust=0.5,face = "bold"),
        legend.title = element_blank(),
        legend.key=element_blank(),   # 图例键为空
        legend.text = element_text(color="black",size=9), # 定义图例文本
        legend.spacing.x=unit(0.1,'cm'), # 定义文本书平距离
        legend.key.width=unit(0.2,'cm'), # 定义图例水平大小
        legend.key.height=unit(0.2,'cm'), # 定义图例垂直大小
        legend.background=element_blank(), # 设置背景为空
        legend.box.background=element_rect(colour="black"), # 图例绘制边框
        legend.position=c(1,0),legend.justification=c(1,0))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 以往案例
  • 安装并加载R包
  • 导入数据
  • PCA分析
    • 每个主成分解释的总方差
    • 数据可视化
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档