2013-03-04 15 views
7

mam te dane:Ponad 1 kolor w geom_text()

data <- structure(list(Cod.projeto = c(7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L 
), Nome.projeto = c("ESCOLAS INFANTIS", "ESCOLAS INFANTIS", "ESCOLAS INFANTIS", 
"ESCOLAS INFANTIS", "ESCOLAS INFANTIS", "ESCOLAS INFANTIS", "ESCOLAS INFANTIS", 
"ESCOLAS INFANTIS"), Secretarua = c("SMED", "SMED", "SMED", "SMED", 
"SMED", "SMED", "SMED", "SMED"), Comp = structure(c(1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L), .Label = c("28/02/2013", "01/03/2013"), class = c("ordered", 
"factor")), Estado = c("Criadas", "Criadas", "Providas", "Providas", 
"Criadas", "Criadas", "Providas", "Providas"), Categoria = c("A/G", 
"A/G", "A/G", "A/G", "B", "B", "B", "B"), Vagas = c(67, 67, 63, 
63, 124, 124, 73, 72)), .Names = c("Cod.projeto", "Nome.projeto", 
"Secretarua", "Comp", "Estado", "Categoria", "Vagas"), row.names = c(NA, 
-8L), class = "data.frame") 

i ten ggplot2() barplot:

require(ggplot2) 
ggplot(data, aes(x=Categoria, y=Vagas, fill=relevel(factor(Estado),'Providas'))) + 
    geom_bar(position='dodge', stat='identity') + 
    ggtitle(substitute(atop(titulo, atop(subtitulo)),list(titulo=paste(data[1,1:2],collapse=' - '),subtitulo=data[1,3]))) + 
    theme(legend.position = "bottom") + 
    xlab("Categoria") + 
    ylab("Vagas") + 
    scale_fill_grey('') + 
    theme(panel.background = element_rect(fill='white'),panel.grid.major = element_line(colour = "gray70", linetype = 2)) + 
    geom_text(aes(x=Categoria, y=Vagas/2, label = sprintf("%1.0f", Vagas)),position = position_dodge(height=1,width=1), size=4, colour='white') + 
    facet_wrap(~ Comp) 

skutkuje: My plot

chcę zmian de koloru tekst tylko w szarej kolumnie (Categoria = Criadas). Próbowałem już użyć dwóch wartości w parametrze colour, ale nie działało. Najbliższym rezultatem było dodanie colour=relevel(factor(Estado),'Providas')) do wnętrza aes(), ale tekst był różowy i niebieski i dodano nową legendę, której nie chcę.

Odpowiedz

7

Powinien działać w przypadku korzystania z połączenia colour=relevel(factor(Estado),'Providas')), ale dodać

+ scale_color_manual(values =c('white', 'black'),guide="none")

gdzie czarny kolor jest cokolwiek chcesz.

+0

Edycja Didzisa była lepsza. – Arun