集群标签在水平 hclust 树状图上被切断
Cluster labels are cut off on horizontal hclust dendrogram
我用hclust
和as.dendogram
做了一个树状图,但是当我把它旋转到水平方向时,模型名称被截断了。我怎样才能确保绘图显示完整的模型名称?
你需要玩一下保证金。这是一个示例(它还使用 dendextend 来额外控制树状图的颜色和形状)
library(dendextend)
library(dplyr)
small_mtcars <- head(mtcars) %>% select(mpg, cyl, disp)
small_mtcars
d1 = small_mtcars %>% dist() %>% hclust(method = "average") %>% as.dendrogram()
library(colorspace)
some_colors <- rainbow_hcl(nrow(small_mtcars))
d1_col <- some_colors[order.dendrogram(d1)]
# some colors for fun
d1 <- d1 %>%
set("labels_cex",1.2) %>%
set("labels_colors", value= d1_col) %>%
set("leaves_pch", 19) %>%
set("leaves_cex", 2) %>%
set("leaves_col", value= d1_col)
par(mfrow = c(1,2))
par(mar = c(2,2,2,2))
d1 %>%
plot(main="d1 (bad margins)", horiz = TRUE)
par(mar = c(2,2,2,10))
d1 %>%
set("labels_cex",1.2) %>%
plot(main="d1 (good margins)", horiz = TRUE)
您还可以使用 package:ape
中的 plot.phylo
(系统发育和进化分析):
library("ape")
png("out.png",w=350,h=200)
a<-as.phylo(hclust(dist(scale(head(mtcars)[,c("mpg","cyl","disp")]))))
plot(a,cex=1.3,no.margin=T,font=1)
dev.off()
font=1
使用常规字体而不是斜体。
no.margin=T
删除垂直边距但仍保留水平边距。我使用 ImageMagick 删除水平边距并在图周围添加一个 10px 的小边距:mogrify -trim -border 10 -bordercolor white out.png
.
cex
(字符扩展)更改文本大小。
没有underscore=T
.
默认下划线替换为标签中的空格
?plot.phylo
显示更多选项。
我用hclust
和as.dendogram
做了一个树状图,但是当我把它旋转到水平方向时,模型名称被截断了。我怎样才能确保绘图显示完整的模型名称?
你需要玩一下保证金。这是一个示例(它还使用 dendextend 来额外控制树状图的颜色和形状)
library(dendextend)
library(dplyr)
small_mtcars <- head(mtcars) %>% select(mpg, cyl, disp)
small_mtcars
d1 = small_mtcars %>% dist() %>% hclust(method = "average") %>% as.dendrogram()
library(colorspace)
some_colors <- rainbow_hcl(nrow(small_mtcars))
d1_col <- some_colors[order.dendrogram(d1)]
# some colors for fun
d1 <- d1 %>%
set("labels_cex",1.2) %>%
set("labels_colors", value= d1_col) %>%
set("leaves_pch", 19) %>%
set("leaves_cex", 2) %>%
set("leaves_col", value= d1_col)
par(mfrow = c(1,2))
par(mar = c(2,2,2,2))
d1 %>%
plot(main="d1 (bad margins)", horiz = TRUE)
par(mar = c(2,2,2,10))
d1 %>%
set("labels_cex",1.2) %>%
plot(main="d1 (good margins)", horiz = TRUE)
您还可以使用 package:ape
中的 plot.phylo
(系统发育和进化分析):
library("ape")
png("out.png",w=350,h=200)
a<-as.phylo(hclust(dist(scale(head(mtcars)[,c("mpg","cyl","disp")]))))
plot(a,cex=1.3,no.margin=T,font=1)
dev.off()
font=1
使用常规字体而不是斜体。
no.margin=T
删除垂直边距但仍保留水平边距。我使用 ImageMagick 删除水平边距并在图周围添加一个 10px 的小边距:mogrify -trim -border 10 -bordercolor white out.png
.
cex
(字符扩展)更改文本大小。
没有underscore=T
.
?plot.phylo
显示更多选项。