2014-10-04 14 views
22

Zostałem poproszony, aby umieścić pełne obramowanie wokół mojej działki poniżej:panel Dodaj do granicy ggplot2

enter image description here

Korzystanie panel.border = element_rect(colour = "black") rezultaty w utracie w spisku staje się puste.

Nie mogę korzystać theme_bw() gdyż nie mają taką samą funkcjonalność jak zwykle tematem, kod Obecnie używam jest poniżej:

graph<-ggplot(d,aes(x=d$AOE, y=d$MEI) 
      )+ 
    geom_point(shape=20, size=3)+ 
    geom_rug()+ 
    annotate("text", x = -1.1, y = 14000, label = "27/04/2011") + 
    annotate("text", x = -1.3, y = 10400, label = "03/04/1974") + 
    xlab("MEI")+ 
    ylab("AOE")+ 
    scale_y_log10()+ 
    theme(axis.text.y = element_text(size=14), 
     axis.text.x = element_text(size=14), 
     axis.title.y = element_text(size=14), 
     axis.title.x = element_text(size=14), 
     panel.background = element_blank(), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     axis.line = element_line(colour = "black") 
) 

graph 

Wszelkie porady, w jaki sposób uzyskać pełną czarne obramowanie będzie być bardzo docenionym!

Odpowiedz

30

Aby użyć panel.border, należy również podać puste wypełnienie przy użyciu fill=NA.

Spróbuj:

library(ggplot2) 

ggplot(mtcars, aes(mpg, disp)) + geom_point() + geom_rug() + 
    theme(axis.text.y = element_text(size=14), 
     axis.text.x = element_text(size=14), 
     axis.title.y = element_text(size=14), 
     axis.title.x = element_text(size=14), 
     panel.background = element_blank(), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     axis.line = element_line(colour = "black"), 
     panel.border = element_rect(colour = "black", fill=NA, size=5) 
) 

enter image description here

7

Można używać razem: theme_bw() i theme(). To powinno działać:

# creating some data 
set.seed(1) 
d <- data.frame(MEI=rnorm(100), AOE=rlnorm(100, 10, 5)) 

# creating the plot 
ggplot(d,aes(x=MEI, y=AOE)) + 
    geom_point(shape=20, size=3) + 
    geom_rug() + 
    scale_y_log10() + 
    theme_bw() + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     panel.background = element_rect(colour = "black", size=4)) 

to daje: enter image description here


Rozwiązanie bez theme_bw() i zainspirowany @Andrie, ale z wykorzystaniem panel.background zamiast panel.border:

ggplot(d,aes(x=MEI, y=AOE)) + 
    geom_point(shape=20, size=3) + 
    geom_rug() + 
    scale_y_log10() + 
    theme(panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     panel.background = element_rect(colour = "black", size=4, fill=NA)) 

to da dokładnie tę samą fabułę. Różnica między panel.background i panel.border polega na tym, że pod polem jest rysowany panel.background, a na wierzchu wykresu jest rysowane panel.border.

+0

żadna z tych metod, ani nawet je połączono, praca z size = 1, która jest zwykle stosowana w publikacjach. –

Powiązane problemy