次のように樹状図の葉に色を付けました
require(graphics)
dm <- hclust(dist(USArrests[1:5,]), "ave")
df<-data.frame("State"=c("Alabama","Alaska","Arizona","Arkansas","California"), "Location"=c("South","North","West","South","West"))
color.sites<-function(dm){
dend<-as.dendrogram(dm)
plot(dend)
cols <- attributes(dend)
df$ColorGroups <- factor(df$Location)
#Set colour pallette
Location.Pal <- rainbow(nlevels(df$ColorGroups), s=0.9,v=0.9,start=0.1,end=0.9,alpha=1)
colorleaves <- function (n) {
# only apply to "leaves" in other words the labels
if(is.leaf(n)) {
i <- which(df$State == attr(n,"label"))
col.lab <- Location.Pal[[unclass(df$ColorGroups[[i]])]]
a <- attributes(n)
attr(n, "nodePar") <- c(a$nodePar, list(lab.col = col.lab))
}
n
}
xx <- dendrapply(dend, colorleaves)
plot(xx, cex=3, cex.main=2, cex.lab=5, cex.axis=1, mar=c(3,3,3,3), main="Title")
}
color.sites(dm)
私がしたいこと: 1) 色を説明する凡例を追加します (つまり、オレンジ = 北) 2) 葉のラベルを大きく太字にします (cex.lab はその仕事をしていないようです) 3) はっきりと対照的なカラー パレットを作成します色 (虹、熱、色など) は、樹状図に多くの葉と色がある場合、すべてが混ざり合っているように見えます。
どんなアドバイスでも大歓迎です!