2017-02-06 3 views
1

ich weg bin der Aufbau eine Frage früher gefragt, geom_tile single color as 0... es mit dem folgenden Code beginnt und der vorgesehenen Antwortcode erzeugt die Handlung:ändert Legende Titelposition ohne Änderung der Etiketten

df <- data.frame(expand.grid(1:10,1:10)) 
df$z <- sample(0:10, nrow(df), replace=T) 
# provided answer from SO 
ggplot(df,aes(x = Var1,y = Var2, fill = z)) + 
    geom_tile() + 
    scale_fill_gradientn(colours = c("white", "green", "red"), values = c(0,0.1,1)) 

enter image description here

I möchte die Legende mit dem Legendentitel oben und zentriert nach unten verschieben. Der Code und Ergebnis sind hier:

ggplot(df,aes(x = Var1,y = Var2, fill = z)) + 
    geom_tile() + 
    scale_fill_gradientn(colours = c("white", "green", "red"), values = c(0,0.1,1)) + 
    theme(legend.position="bottom") + 
    guides(fill = guide_legend(title.position="top",label.position = "bottom")) 

enter image description here

Neupositionierung der Legende Werke und der Titel auf „top“ aber ich die kontinuierliche Skala verloren und kann den Titel nicht zentrieren. Es gibt eine Reihe von informativen q & a auf SO über die legendäre Titelposition zu ändern, aber keiner scheint das Problem zu haben, eine kontinuierliche Legende zu diskreten geändert haben.

Antwort

4

So wollen Sie das?

ggplot(df,aes(x = Var1,y = Var2, fill = z)) + 
    geom_tile() + 
    theme(legend.position="bottom") + 
    scale_fill_gradientn(colours = c("white", "green", "red"), 
         values = c(0, 0.1, 1)) + 
    guides(fill = guide_colourbar(title.position = "top", 
           title.hjust = .5, 
           label.position = "bottom")) 

enter image description here

+2

Danke ja, so einfach. Die Lektion für mich ist also, dass sich "Legende" in eine diskrete Variable verwandelt, um anzuzeigen, wo ich "Farbleiste" in der Anleitung verwenden möchte. – tjr

Verwandte Themen