Ordenação de múltiplas legendas / guias (qual é a lógica automática e como alterá-la?)
Eu me deparei com esse estranho comportamento com o ggplot2s ordenando legendas e simplesmente não consigo descobrir qual é a lógica por trás da colocação automática das legendas:
Meu objetivo: em um gráfico com várias escalas, quero organizá-las em uma ordem (temática) diferente da automática. Mas eu não consegui encontrar um comando em opts () ou guides () para fazer isso por mim. E só para deixar claro: não quero alterar os itens dentro das legendas, isso funciona bem, mas o arranjo de várias legendas completas.
Então, primeiro eu assumi que eles foram ordenados por tipo, ou seja, escala, cor etc. Mas esse não é o caso, a sua posição muda (veja abaixo).
Ordem alfabética? Não.
<code> library(ggplot2) ## v0.9 ## Scale_colour on top qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) + scale_size(name = "A") + scale_colour_discrete(name = "B") ## Reverse names --> scale_colour on bottom qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) + scale_size(name = "B") + scale_colour_discrete(name = "A") ## Change name B to C --> scale_colour on bottom qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) + scale_size(name = "C") + scale_colour_discrete(name = "A") ## Change name B to D --> scale_colour on top qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class) + scale_size(name = "D") + scale_colour_discrete(name = "A") </code>
Posições adicionais de scale_colour (para nome de scale_size trocado)
"E": inferior"F" - "L": topo"M" - "N": inferiore continua a aparecer no topo e na parte inferior.
Ordem fatorial? Não.
<code> ## From top to bottom: C - B - A fname <- factor(c("A","B","C"), levels = c("A","B","C")) qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class, alpha = cyl) + scale_size(name = fname[1]) + scale_colour_discrete(name = fname[2]) + scale_alpha(name=fname[3]) ## From top to bottom: B - C - A fname <- factor(c("A","B","C"), levels = c("C","B","A")) qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class, alpha = cyl) + scale_size(name = fname[1]) + scale_colour_discrete(name = fname[2]) + scale_alpha(name=fname[3]) ## From top to bottom: B - C - A fname <- factor(c("A","B","C"), levels = c("B","C","A")) qplot(data = mpg,x = displ, y = cty, size = hwy, colour = class, alpha = cyl)+ scale_size(name = fname[1]) + scale_colour_discrete(name = fname[2]) + scale_alpha(name=fname[3]) </code>
Comprimento do título? Não. Eu vou parar por agora com código de exemplo, mas esse também rendeu ordens flutuantes independente do tamanho do caractere.
Alguma ideia?