UPGM聚类绘图

本人虽在生信行业浑水摸鱼了几年,但是依旧处于中下等技术水平,为了避免自己一直处于下游状态,遇到问题抓紧记录一哈子! 

一、upgm聚类图

今日在绘制upgm图出现问题,出现图这样的问题。X轴标签和标题sample嵌套,糊在一起了

经过网上一顿搜索,已经解决,具体看如下代码:

library(vegan)
theme_set(theme_bw())
library(jsonlite)
library(optparse)
data <- read.delim(file="Phylum.txt", header=T, row.names=1, stringsAsFactors=F, comment.char="", sep="\t", check.names=F)
data <- data[apply(data, 1, sd)>0,]
data <- data[,apply(data, 2, max)>0]
meta <- as.data.frame(fromJSON("info.json")$sampleInfo)
meta <- meta[,c("id", "group")]
outname <- "upgm"

d <- vegdist(t(data), method="bray")
upgma <- hclust(d, method="average")

png(paste0(outname, ".png"), width=1580, height=1080, res=300)
par(mai=c(2, 1, 1, 1), cex.lab=1.5)
plot(as.dendrogram(upgma), main = 'UPGMA\n(Bray-curtis distance)', sub = '', ylab = 'Height')
mtext('Sample', side = 1, line = 7, cex = 1.5)
dev.off()

关键代码语句,解决问题的两行:

par(mai=c(2, 1, 1, 1), cex.lab=1.5)  
plot(as.dendrogram(upgma), main = 'UPGMA\n(Bray-curtis distance)', sub = '', ylab = 'Height')
mtext('Sample', side = 1, line = 7, cex = 1.5)

逐行解释一下:

  • mai=c(2, 1, 1, 1): 设置边距(margin),单位为英寸。顺序为 c(bottom, left, top, right)。
    • bottom = 2:底部边距为 2 英寸。
    • left = 1:左侧边距为 1 英寸。
    • top = 1:顶部边距为 1 英寸。
    • right = 1:右侧边距为 1 英寸。
  • cex.lab=1.5: 设置坐标轴标签的字体大小为 1.5 倍。
  • side = 1:表示 x 轴(底部)。
  • line = 7:表示文本距离 x 轴的行数,可以调整这个值来改变标题的位置。
  • cex = 1.5:设置文本的大小为 1.5 倍。

改后图片如下:

参考帖子:

R语言:UPGMA聚类分析和树状图 - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值