Я сгруппировал свой фрейм данных с иерархической кластеризацией, однако моя кластерная диаграмма и ось из тепловой карты сильно отличаются. Я пытаюсь сделать это то же самое. Однако это не работает должным образом.
DataFrame (вывод dput ())
structure(list(ï..X1 = structure(c(10L, 11L, 1L, 2L, 3L, 4L,
5L, 6L, 7L, 8L, 9L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L,
21L), .Label = c("GCF1398", "GCF1469", "GCF1471", "GCF1542",
"GCF1550", "GCF1555", "GCF1557", "GCF1565", "GCF1567", "GCF2029",
"GCF2685", "GCF2760", "GCF2767", "GCF2775", "GCF2791", "GCF2808",
"GCF2815", "GCF3517", "GCF3579", "GCF3734", "GCF3737"), class = "factor"),
X2 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "GCF2983", class = "factor"),
value = c(1L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 0L,
1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L)), class = "data.frame", row.names = c(NA,
-21L))
Dataframe
df <- df.lower
df$X1 <- gsub("GCF", "", df$X1)
df$X2 <- gsub("GCF", "", df$X2)
df_wide <- reshape2::dcast(df.lower, formula = X1~X2, value.var = 'value')
rownames(df_wide) = df_wide$X2
m <- as.matrix(df_wide[,-1])
df.dendro <- as.dendrogram(hclust(d = dist(x = m)))
# Create dendroplot
dendro.plot <- ggdendrogram(data = df.dendro, rotate = TRUE)
#Resize Axis Elements
dendro.plot <- dendro.plot + theme(axis.text.y = element_text(size = 6))
# Preview the plot
print(dendro.plot)
# Heatmap and Data wrangling
heatmap.plot <- ggplot(df.lower, aes(X1, X2)) + geom_tile(aes(fill = value)) + theme_ipsum() +
theme(axis.text.y = element_text(size = 6), axis.text.x = element_text(size = 6, hjust = 1, angle = 90),
legend.position = "top")
heatmap.plot
grid.newpage()
print(heatmap.plot, vp = viewport(x = 0.4, y = 0.5, width = 0.8, height = 1.0))
print(dendro.plot, vp = viewport(x = 0.90, y = 0.43, width = 0.2, height = 0.92))