2016-05-01 16 views
2

Ich benutze ggplot2, um ein Forest Plot auf einem Mac mit Elcapitan zu erstellen. Es gibt schwache vertikale Linien im Hintergrund - dies sind keine Gitterlinien. Dies ist die „Thema“ Einstellung:Artefakt graue Linien im Hintergrund des Plots ggplot2 grid.arrange R Mac OSx Quarz

theme_set(theme_bw()) 
theme_update(
    axis.line = element_line(colour = "black"), 
    axis.line.y=element_line(colour="white"), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    panel.border = element_blank(), 
    panel.background = element_blank(), 
    axis.text.y = element_blank(), 
    axis.ticks.y = element_blank(), 
    plot.margin = unit(c(0,0,0,0), "lines") 
) 

Alle Ideen, wie diese grauen Linien loszuwerden? Bin ein Anfänger bei der Verwendung dieser Platine und R und ggplot2-- Glücklich, Beispieldaten und meinen Code zu laden - aber nicht sicher, ob hier nützlich.

Screenshot der Parzelle:

enter image description here

UPDATE als Antwort auf Diegos Frage für den Code:

Dieser Code wurde basierend auf Code von Matt Statistik und Sachen - https://mcfromnz.wordpress.com/2012/11/06/forest-plots-in-r-ggplot-with-side-table/ - aber ich kann den Link zu seinem ursprünglichen Code nicht finden.

theme_set(theme_bw()) 
theme_update(
    axis.line = element_line(colour = "black"), 
    axis.line.y=element_line(colour="white"), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    panel.border = element_blank(), 
    panel.background = element_blank(), 
    axis.text.y = element_blank(), 
    axis.ticks.y = element_blank(), 
    plot.margin = unit(c(0,0,0,0), "lines") 
) 
pD<- ggplot(datD,aes(cen,rev(author2))) + 
     geom_point(aes(fill = summary), size=1.7,shape=23,colour="black") + 
     geom_errorbarh(
     aes(xmax = datD$high, xmin = datD$low, colour=summary), 
     height = 0.3, size=0.25) + 
     scale_x_continuous(
     breaks = seq(0,1,.1), labels = seq(0,100,10)) + 
     labs(x="Risk, %", y="") + 
    theme(axis.text.x=element_text(size=2))+geom_text(aes(0, author2), label=(paste(rev(datD$author2),rev(datD$risk))), hjust=0, size=ifelse(rev(datD$author2)=="Heterogeneity (95% CI)",2,0), fontface="bold") 

p2D<-pD+ 
    theme(legend.position = "none", 
     axis.text.x = element_text(size=6), 
     axis.title = element_text(size=6,face="italic")) + 
    guides(size = FALSE) + 
    geom_hline(aes(yintercept=c((length(datD$authorREF2)-0.5)))) 
     
#Left hand side will be author_yr, Events, Participants 
    #V0 indicates how many y-axis datapoints there willbe 
    #V05 spaces out the table columns on the x-axis 
    #V1 is a vector of all the columns that will be in the table 
lab_left1D<-data.frame(
      V0 = factor(
       c(as.factor(1:length(datD$authorREF2))), 
       levels=c(as.factor(length(datD$authorREF2):1)) 
        ), 
      V05 = rep(
        c(1,1.25,1.5,1.7), 
        each=length(datD$authorREF2) 
        ), 
      V1 = c(c(as.character(datD$authorREF2)), 
        c(as.character(datD$Events)), 
        c(as.character(datD$patients)), 
        c(as.character(datD$risk)))) 

data_table_left1D<-ggplot(lab_left1D, 
         aes(x = V05, y = V0, 
         label = format(V1, nsmall = 1))) + 
       geom_text(
        aes(fontface = 
         ifelse(
          V0==as.character((length(datD$authorREF2)-1)),'bold.italic', 
          ifelse(V0=='1','bold', 
          ifelse(V0==as.character 
             (length(datD$authorREF2)),'italic','plain')))), 

         size = ifelse(
         lab_left1D$V0==as.character(length(datD$authorREF2)),0,2),         hjust=0, vjust=1.3) +     theme_bw() + 
           theme(panel.grid.major = element_blank(), 
             legend.position = "none", 
             panel.border = element_blank(), 
        #axis.line = element_line(colour = "black"), 
             axis.text.x = element_text(colour="white"),#element_blank(), 
             axis.text.y = element_blank(), 
             axis.ticks = element_line(colour="white"),#element_blank(), 
             plot.margin = unit(c(0.5,0,0,0), "lines")) + 
                labs(x="",y="") + 
              coord_cartesian(xlim=c(1,2.5)) 

grid.arrange(data_table_left1D, p2D,widths=c(5,3)) 

dev.off() 
+1

Es _sure_ sieht aus wie der ggplot auf der linken Seite immer noch große Gitterlinien gesetzt hat. Wir wären in der Lage, wirklich zu helfen, wenn der tatsächliche Code gegen die Themenbits gepostet wird. Wir haben keine Ahnung, wo sonst Sie die Möglichkeit haben könnten, dass sich große Gitterlinien wieder einschleichen. – hrbrmstr

+0

Ich glaube nicht, dass es eine Gitternetzlinie ist - ich denke, es hat etwas damit zu tun, wie R auf Quarz rendert Mac-- – HanzMoleman

+0

Ich benutze einen Mac und das ist _alot_ von wirklich interessant formatiertem Code. Ich bin mir nicht sicher, ob Sie [this] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) bereits gesehen haben, aber es hilft Ihnen zu erklären, wie Sie in der R arbeiten Seite des SO Q & A-Forums. – hrbrmstr

Antwort

1

A minimal reproduzierbares Beispiel wäre hilfreicher als eine Schwade des Interessanter formatierte und angeordnet Code.

library(ggplot2) 
library(ggthemes) 
library(gridExtra) 

gg <- ggplot() 
gg <- gg + geom_text(data=data.frame(x=1, y=1, label="label"), 
        aes(x, y, label=label)) 
gg <- gg + theme_map() 
gg_left <- gg 

gg <- ggplot() 
gg <- gg + geom_point(data=mtcars, aes(mpg, wt)) 
gg <- gg + theme_bw() 
gg_right <- gg 

grid.arrange(gg_left, gg_right, ncol=2) 

enter image description here

Wie Sie sehen, ich bin auf einem Mac und ließ sogar den Komfort RStudio, dass ein „reines Quarz-Fenster“ zu erzeugen, in R.app zu testen.

Ich würde daran arbeiten, Ihren Code neu zu organisieren, die Kernplots zum Laufen zu bringen und dann das gewünschte Thema anzuwenden, indem Sie auf den Schnittcode & klicken.

+0

Danke für die Anleitung auf Fragen und Ratschläge, wie man das herausfinden kann – HanzMoleman

+0

Hrbrmstr-- Sie waren bang on-- sie sind Gitternetzlinien erscheinen, weil ich panel.grid.minor = element_blank() nicht enthalten. Ihre Ratschläge, wie Sie das systematisch herausfinden können, waren ein guter Lernpunkt - danke! – HanzMoleman