2012-07-02 19 views
5

ktokolwiek mógłby mi powiedzieć, co jest nie tak z tym scenariuszem? Potrzebuję 2 poziome, czarne, przerywane linie, ale mam zamiast tego dwie czerwone ciągłe. Nie mogę również zmienić koloru marginesów wydruku na czarny, pomimo używania elementu theme_bw, a także wypełnienie planszy pudełkowej nie jest szare, zgodnie z wymaganiami.Kolor kontrolny w liniach poziomych w ggplot2

dat1 <- data.frame (xvar = rep(c("A", "B"), each=10), 

       yvar = 1:20 + rnorm(20,sd=3)) 

    ggplot(dat1, aes(x=xvar, y=yvar)) + 
    theme_bw()+ 
    geom_boxplot(fill=grey)+ 
    geom_hline(aes(yintercept=40, color="black", linetype="dashed"))+ 
    geom_hline(aes(yintercept=33.84, color="black", linetype="dashed"))+ 
    scale_x_discrete(name="") + 
    scale_y_continuous(name="temperature (°C)")+ 
    opts(
    panel.grid.major = theme_line(size = 0.5, colour = NA), 
    panel.background = theme_rect(colour = NA), 
    axis.title.y = theme_text(angle=90,face="bold", colour="black", size=14), 
    axis.text.y = theme_text(face="bold",angle=0, size=14,colour="black"), 
    axis.title.x = theme_text(face="bold", colour="black", size=14), 
    axis.text.x = theme_text(size=14,vjust=1.2, colour=NA)) 

wielkie dzięki!

Odpowiedz

11

Jeśli chodzi o czarną przerywaną linię, powinieneś zdefiniować ją poza aes(). Wypróbuj poniższy kod:

geom_hline(aes(yintercept=40), color="black", linetype="dashed") 

Odnośnie fabuły skrzynki, należy skorygować swój kod do poniższego:

geom_boxplot(fill="gray") 

I wreszcie, aby uzyskać czarny margines, trzeba pamiętać, że ustawiania marginesu mieć kolor NA w opcjach (..., panel.background = theme_rect (color = NA), ...). Aby rozwiązać problem, spróbuj tego:

panel.background = theme_rect(colour = "black") 

Mam nadzieję, że mój komentarz pomaga.

+0

Wielkie dzięki Sepehr !! nie odpowiedział wcześniej, ponieważ przestałem otrzymywać anwers na moim koncie Gmail. to zadziałało. –

+0

Co zrobić, jeśli chcę pokolorować linie na podstawie współczynnika AES, takiego jak grupowanie kolorów na pudełku? geom_hline() wydaje się nie akceptować więcej niż jednej instrukcji aes. – jzadra