我習慣使用 ggplot2,所以我只使用 fct_inorder() 來重新排列我的軸。它應該是 Gate 0 - 3,然后是 Full。您如何使用熱圖之類的基本功能來做到這一點?df 和下面的代碼。謝謝!
Wizard_heatmap <- structure(list(Response = c("LIZARD", "LIZARD", "LIZARD", "NR",
"NR", "WAITER", "WEEKEND", "WHALE", "WHEELCHAIR", "WHIP", "WHISKEY",
"WHISTLE", "WHISTLE", "WHISTLE", "WIND", "WINDMILL", "WINDOW",
"WINDOW", "WINTER", "WISDOM", "WISDOM", "WIZARD", "WIZARD", "WIZARD",
"WIZARD", "WOMEN", "WOOD", "WOODCHIP"),
Target = c("WIZARD","WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD",
"WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD",
"WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD",
"WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD", "WIZARD"),
Gate = c("Full", "Gate 2", "Gate 3", "Gate 0", "Gate 1",
"Gate 0", "Gate 1", "Gate 0", "Gate 0", "Gate 0", "Gate 1",
"Gate 0", "Gate 1", "Gate 2", "Gate 0", "Gate 0", "Gate 0",
"Gate 1", "Gate 0", "Gate 1", "Gate 2", "Full", "Gate 1",
"Gate 2", "Gate 3", "Gate 0", "Gate 0", "Gate 0"),
n = c(1, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 7,
1, 15, 1, 12, 14, 1, 1, 1)), row.names = c(NA, -28L), class = c("tbl_df", "tbl", "data.frame"))
heatmap(with(Wizard_heatmap, as.matrix(table(factor(Response), factor(Gate)))))
uj5u.com熱心網友回復:
我想知道,根據您的資料,您是否對樹狀圖不感興趣,而只是在尋找標準熱圖?如果這樣做,那么也許 usingggplot會給你你需要的控制?
m <- with(Wizard_heatmap, as.matrix(table(factor(Response), factor(Gate))))
for(i in seq(nrow(Wizard_heatmap))) {
m[Wizard_heatmap$Response[i], Wizard_heatmap$Gate[i]] <- Wizard_heatmap$n[i]
}
df <- setNames(as.data.frame(as.table(m)), c("Response", "Gate", "n"))
library(ggplot2)
ggplot(df, aes(Gate, Response, fill = n))
geom_tile(color = "gray")
theme_minimal()
scale_fill_gradientn(colours = c("red4", "red", "orange", "yellow", "white"))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450758.html
