Создание легенды для дендрограммы с цветными листьями в r

Я раскрасил листья на дендрограмме следующим образом

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)

enter image description here

Я хотел бы :1 )добавьте легенду, поясняющую цвета (, т. е. оранжевый = север )2 )сделать метки листьев крупнее и жирнее (cex.lab, похоже, не справляется со своей задачей )3 )создать цветовую палитру с резко контрастирующим цветом (радуга, тепло.цвета и т. д. кажется, что все они смешиваются вместе, когда в дендрограмме много листьев и цветов.

Любые советы высоко ценится !

5
задан Elizabeth 15 August 2012 в 10:37
поделиться