#r #cluster-analysis #hierarchical-clustering #pvclust
#r #кластерный анализ #иерархическая кластеризация #pvclust
Вопрос:
Я хотел бы улучшить свою дендрограмму, которую я сделал с помощью pvclust
пакета. Я не могу видеть большинство меток AU / BP, как вы можете видеть на изображении.
Не могли бы вы помочь мне решить эту проблему?. Я хотел бы видеть все метки AU / BP для дендрограммы.
Ниже приведен исполняемый код.
Спасибо!
library(rdist)
library(pvclust)
library(geosphere)
df<-structure(list(Latitude = c(-23.8, -23.8, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9, -23.9,
-23.9, -23.9, -23.9, -23.9, -23.9), Longitude = c(-49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.6, -49.7,
-49.7, -49.7, -49.7, -49.7, -49.6, -49.6, -49.6, -49.6), Waste = c(526, 350, 526, 469, 285, 175, 175, 350, 350, 175, 350, 175, 175, 364,
175, 175, 350, 45.5, 54.6)), class = "data.frame", row.names = c(NA, -19L))
coordinates<-subset(df,select=c("Latitude","Longitude"))
d<-as.dist(distm(coordinates[,2:1]))
mat <- as.matrix(d)
mat <- t(mat)
fit <- pvclust(mat, method.hclust="average", method.dist="euclidean",
nboot=1000, r=seq(0.9,1.4,by=.1))
fit
plot(fit,hang=-1,cex=.8,main="Average Linkage Clustering")
pvrect(fit, alpha=.80, pv="au", type="geq")
Учитывая 325 местоположений
Ответ №1:
Самый простой способ — изменить размер окна графика и увеличить hang=
аргумент:
x11(width=12, height=8) # quartz(width=12, height=8) for mac or windows(width=12, height=8) for Windows
plot(fit,hang=.05,cex=.8,main="Average Linkage Clustering")
pvrect(fit, alpha=.80, pv="au", type="geq")
Вот пример со 150 случаями (примерно половина из 325, которые у вас есть, но из набора данных, который входит в состав R:
data(iris)
mat <- t(as.matrix(iris[, 1:4]))
fit <- pvclust(mat, method.hclust="average", method.dist="euclidean",
nboot=1000, r=seq(0.9,1.4,by=.1))
Теперь распечатайте результаты в формате PDF:
pdf(file="Dendrogram.pdf", width=13, height=7.5)
compression="lzw")
plot(fit,hang=.05, cex=.5, cex.pv=.5, main="Average Linkage Clustering")
pvrect(fit, alpha=.80, pv="au", type="geq")
dev.off()
Разрешение в формате pdf лучше, но перекрытие текста меньше. Другой вариант — уменьшить маркировку:
plot(fit,hang=.05, cex=.5, cex.pv=.5, print.num=FALSE, print.pv=FALSE,
labels=FALSE, main="Average Linkage Clustering")
pvrect(fit, alpha=.80, pv="au", type="geq")
При этом печатается только дендрограмма без каких-либо надписей, поэтому вы можете видеть структуру, но не детали. В некоторых случаях данные представляют несколько групп. iris
Данные включают три вида. Вы можете обозначить только виды, изменив значение на labels=rep(1:3, each=50)
так, чтобы цифры 1, 2, 3 идентифицировали три вида.
Комментарии:
1. Спасибо, доктор Карл, вы ответили на мой вопрос. Я приму. Однако я сделал это так, как вы говорили с моими данными, то есть 325 вместо 19, как в примере, который вы сделали (я сделал только 19, чтобы упростить выполнение). Это улучшило график, но есть ли способ улучшить его еще больше?? Я вставил изображение выше, чтобы вы увидели, как это получилось. Если вы хотите, я могу передать вам базу данных с 325 местоположениями.
2. Имея 325 местоположений, вы должны решить, что важно показать. Монитор вашего компьютера не так велик, а его разрешение ниже, чем у бумаги. Для получения более высокого разрешения вам необходимо выполнить печать в файл, такой как
svg
или.tiff
. Затем вы можете уменьшить размер шрифта. Я добавлю приведенный выше пример для печати PDF-файла на бумаге разрешенного формата. Другой подход заключается в нанесении меньшего количества информации. Параметрами, которые удаляют текст с графика, являютсяprint.num=FALSE
,print.pv=FALSE
, иlabels=FALSE
.3. Большое спасибо за ваш ответ. Мне очень понравился график, который вы сделали в формате PDF, я хорошо видел цифры. Я хотел сделать что-то похожее на то, что вы сделали. Тем не менее, я провел тест в своем случае, и он все равно выглядел не так хорошо. Возможно, я что-то упускаю. Если это не неудобно, вы можете протестировать базу, которая находится по этой ссылке: github.com/JovaniSouza/JovaniSouza5/blob/master/database.xlsx Это база данных, которую я использую. Если вы согласны, при использовании функции pvclust используйте nboot = 5, потому что использование nboot = 1000 занимает слишком много времени. Еще раз спасибо.
4. Попробуйте
pdf(file="DendrogramANSI-D.pdf", width=32, height=20) # ANSI D 22 in. x 34 in.
, это будет слишком большим для печати на большинстве принтеров, но вы можете увеличить изображение на экране компьютера и прочитать цифры.5. Еще раз спасибо dcarlson! Вы мне очень помогли.