Я попросил несколько разных экспертов отсортировать 92 объекта по их сходству.Основываясь на их ответах, я построил матрицу различий 92 x 92.в R я изучил эту матрицу с помощью следующих команд:
cluster1 <- hclust(as.dist(DISS_MATRIX), method = "average")
plot(cluster1, cex=.55)
Чтобы выделить кластеры, я хотел нарисовать вокруг них прямоугольники:
rect.hclust(cluster1, k = 3, border = "red")
Результат выглядит следующим образом:
Однако, когда объекты имеют более длинные имена («AAAAAAAAAAAAAAAA43» вместо «A43»), форматирование отключается:
rownames(DISS_MATRIX) <- paste0(rep("AAAAAAAAAAAAAAAAAAAAAAAAAAAA",92),1:92)
colnames(DISS_MATRIX) <- paste0(rep("AAAAAAAAAAAAAAAAAAAAAAAAAAAA",92),1:92)
cluster1 <- hclust(as.dist(DISS_MATRIX), method = "average")
plot(cluster1, cex=.55)
rect.hclust(cluster1, k = 3, border = "red")
Это видно по полученной дендограмме.
Кажется, что прямоугольники сдвинулись до конца дендограммы.Не хорошо.Я предполагаю, что этот сбой произошел из-за длинных имен 92 объектов в матрице различий.Это также может показаться не очень актуальным.Просто убедитесь, что ваши объекты имеют достаточно короткие имена.
Однако по разным причинам я хочу, чтобы мои объекты имели свои оригинальные (то есть, допустимо длинные) имена.Этот график предназначен для презентации, и поэтому я не хочу работать с кодами.Я также не хочу использовать какой-либо другой пакет, поскольку я нахожу, что hclust довольно прост в использовании.Тем не менее, я не нахожу никакого способа позиционирования прямоугольников внутри команды rect.hclust.Следовательно, что я могу сделать, чтобы расположить прямоугольники в дендограмме, даже если имена объектов длинные?Благодарю.