R语言作图汇总【存档】

数据导入

导入数据一般有固定格式,比如最简单的方式:

data <- read.csv("path")

一般“path”表示数据文件的根目录。R语言不会自动在相同目录下找到目标文件,但是可以规定R工作的“桌面”,也就是在某个目录下工作。确定了工作目录之后,即使不使用根目录,可以直接从该目录下导入或者输出文件。

setwd("path")#设置工作路径

如果只输入“path”,表格将会被赋值给data。但是一般的表格的第一列是行名,作为DataFrame的格式,我们希望第一列的数据作为行名出现。只需要加一个参数即可:

data <- read.csv("path",row.names = 1)

此时从普遍意义上已经可以较完整的数据表格了。

热图

首先声明数据格式。第一列为行名,之后几列是该name的所属物的几个属性。如果不做数据处理直接绘图,由于每个属性的值域不同,值域较小的属性列可能会因为值域较大属性列的数值而表现得不明显。随机生成的数据:

Name123456
A235000.7610.000121230.5430.000874
B540000.3780.000459870.000340.000189
C670000.2340.000323210.0007890.000567
D410000.9120.000784560.0008760.000345
E320000.5670.000896450.0009120.000678
F789000.1230.000235670.0003210.000456
G987000.4560.000782340.0007650.000123
H456000.7890.000458760.0000980.00089

所以这里需要用到数据的标准化(标准化可以参考这篇文章),标准化之后得到的图为:

相别于其他作图,热图有自己的包。可以用pheat包或者“ComplexHeatmap”包,后者能实现的功能更多一点,但是下载“ComplexHeatmap”可能会遇到一些问题。如果有问题,可以参考这篇文章。

下面给出源码:

library(ComplexHeatmap)#若未下载包请输入下面三条指令

data<- read.csv("your_path",row.names = 1)#导入数据
data <- as.matrix(data)
samples <- rep(c('Group1', 'Group2'), c(3,3)) #定义样本分组信息  
Group = factor(rep(c('Group1', 'Group2'),times = c(3,3)))#分组信息,用于热图分割
Heatmap(
  data,
  row_names_side = 'right',
  column_split = Group, # 分组
  show_column_names = FALSE, # 不显示列名
  row_names_gp = gpar(fontsize = 5), # 设置行名字体
  cluster_rows = FALSE, #不要行聚类
  cluster_columns = FALSE #不要列聚类
)

这里如果使用列聚类的话,分组就会收到影响,所以示例只给出行聚类。

cluster_rows = TRUE

降维图

PCA降维

PCA降维也就是主成分分析。具体原理可以参考这篇文章。

PCA绘图实际上就是找到两个主坐标轴,将数据映射到这个坐标系中。下面是我随机生成的数做的示例:

一下是代码:

data <- read.csv("path",row.names = 1)

pca_result <- prcomp(data, center = TRUE, scale. = TRUE)#做pca分析
pca_summary <- summary(pca_result)#汇总
Group = factor(rep(c('Group1', 'Group2'),times = c(5,5)))#分组信息

library(ggplot2)
library(ggdist)

# 提取坐标轴标题
xlab <- paste0("PC1 (", round(pca_summary$importance[2, 1] * 100, 2), "%)")
ylab <- paste0("PC2 (", round(pca_summary$importance[2, 2] * 100, 2), "%)")

# 提取主成分分析的结果
pca_data <- as.data.frame(pca_result$x[, 1:2])
# 合并组别信息
pca_data$Group <- as.factor(Group)

ggplot(pca_data, aes(x = PC1, y = PC2, color = Group)) +
  geom_point() + #绘制散点
  theme_bw()+ #设置画布主题为黑白色
  stat_ellipse(aes(fill = Group),type = "norm",geom = "polygon",alpha = 0.4)+ #添加椭圆
  scale_color_manual(values = c("#39c5bb", "pink")) +  
  scale_fill_manual(values = c("#39c5bb", "pink")) +
  labs(title = NULL,
       x = xlab,
       y = ylab) 

stat_ellipse只有在散点数量大于3的情况下才能绘制成功。

还有火柴杆图,气泡图,Zscore图,PCoA降维图和NMDS降维图日后上传,暂存。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值