免疫细胞浸润百分比堆积条形图

该条形图展示的是每个TCGA的肿瘤样本中各个免疫细胞所占的比例。

输入数据
该输入数据的每一行显示的是一个TCGA的肿瘤样本中各个免疫细胞所占的比例。每一行的数据用制表符“\t”分隔。
input.txt代码
setwd("") #工作目录
## 读取文件,整理
data <- read.table("input.txt", sep="\t", header = T, row.names = 1, check.names = F)
data <- t(data)
col <- rainbow(nrow(data), s = 0.7, v = 0.7) # 按变量数量设置颜色。s(saturation,饱和度)和v(value,明度)用于HSV颜色空间的描述。
## 绘制
pdf("barplot1.pdf", height = 10, width = 20)
# 图形属性设置
par(las = 1, mar = c(8,5,4,16), # las用于定义轴标签的样式。mar用于设置图形的边距。
mgp = c(3,0.1,0), cex.axis = 1.5) # mgp用于设置轴标题、轴标签和轴线的边距线。cex.axis用于轴注释,相对于cex当前设置的放大倍率。
# 画条形图
a1 <- barplot(data, col = col, # 设置颜色
yaxt = "n", xaxt = "n", # 不显示x、y坐标轴
ylab = "Relative Percent", # y轴标签
cex.lab = 1.8) # 标签文字大小
# 画坐标轴
a2 <- axis(side = 2, tick = FALSE, labels = FALSE) # side用于指定要在绘图的哪一侧绘制轴。tick用于指定是否绘制刻度线和轴线。labels用于指定是否在刻度线处进行(数字)注释
axis(side = 2, a2, paste0(a2*100, "%")) # side = 2指定在绘图的左侧绘制轴
axis(side = 1, a1, labels = FALSE) # side = 1指定在绘图的下方绘制轴
# 添加坐标轴标签
par(srt = 60, xpd = TRUE) # srt表示以度为单位的字符串旋转。xpd用于设置图形打印裁剪方式
text(x = a1, y = -0.02, labels = colnames(data), adj = 1, cex = 0.6) # adj(adjustment)指定标签的x调整,0 表示左/下,1 表示右/上。cex(character expansion),字体大小。
# 添加图例
par(srt = 0) # srt表示graphics以度为单位的字符串旋转。
ytick2 <- cumsum(data[, ncol(data)]) # cumsum(Cumulative Sums,累计总和),将data的最后一列累计总和。
ytick1 <- c(0, ytick2[-length(ytick2)]) # 将上述总和去掉最后一位,第一位前加0
legend(x = par("usr")[2]*0.98, y = par("usr")[4],
legend = rownames(data),
col = col, pch = 15, bty = "n", cex = 1.3) # pch(point character),点形状。bty(box type),在图例周围绘制的框的类型。cex,字符扩展因子
dev.off() # 关闭并保存图形