Я использовал hclust
и as.dendogram
для создания дендрограммы, но когда я поворачиваю ее в горизонтальное положение, названия моделей обрезаются. Как я могу убедиться, что на графике отображаются все названия моделей?
Метки кластеров обрезаны на горизонтальной дендрограмме hclust.
comment
Скорее всего, вам нужно увеличить отступ с правой стороны графика. Точные детали реализации зависят от того, как вы планируете это в первую очередь. Как правило, рекомендуется включать в свой вопрос MCVE.
- person Artem Sokolov   schedule 19.07.2018
comment
Обращаясь за помощью, вы должны указать простой воспроизводимый пример. с образцом ввода и желаемым выводом, которые можно использовать для тестирования и проверки возможных решений.
- person MrFlick   schedule 19.07.2018
Ответы (2)
Вам нужно играть с запасом. Вот пример (он также использует дендекстенд, чтобы дать дополнительный контроль над цветом и формой дендрограммы)
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)
person
Tal Galili
schedule
21.07.2018
Есть ли способ в вашем пакете
dendenextend
изменить ось cex? Высоту ylab считаю маловатой.
- person Milton Alves; 22.07.2018
Вы также можете использовать plot.phylo
из package:ape
(Анализ филогенетики и эволюции):
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, чтобы удалить горизонтальные поля и добавить небольшое поле в 10 пикселей вокруг графика: mogrify -trim -border 10 -bordercolor white out.png
.
cex
(расширение символов) изменяет размер текста.
Подчеркивания заменяются пробелами в метках по умолчанию без underscore=T
.
?plot.phylo
показывает дополнительные параметры.
person
nisetama
schedule
21.02.2021