2017-10-10 66 views
0

考慮到以下數據,我可以生成一個描述在一段時間間隔內react風險如何變化的圖。在ggplot2中覆蓋具有位置=閃避和方面網格的geom_point

risk_1 <- c(0.121,0.226,0.333,0.167,0.200,0.273,0.138,0.323,0.394,0.250,0.200,0.545,0.190,0.355,0.515,0.333,0.300,0.818) 
risk_minus_SE <- c(0.060,0.114,0.198,0.047,0.057,0.097,0.072,0.186,0.247,0.089,0.057,0.280,0.109,0.211,0.352,0.138,0.108,0.523) 
risk_plus_SE <- c(0.229,0.398,0.504,0.448,0.510,0.566,0.249,0.499,0.563,0.532,0.510,0.787,0.309,0.531,0.675,0.609,0.603,0.949) 
Status <- rep(c(rep('With placebo',3),rep('With drug',3)),3) 
durtn <- rep(c('(3-15]','(15-30]','(30-46]'),6) 
react <- c(rep("x\u226516",6),rep("x\u226509",6),rep("x\u226504",6)) 

df1 <- data.frame(risk_1, risk_minus_SE, risk_plus_SE, Status, durtn, react) 

dodge <- position_dodge(width=0.45) 

ggplot(df1,aes(colour=react, y=risk_1, x=durtn)) + 
    geom_point(aes(shape=durtn), shape=16, size = 5, position=dodge) + 
    geom_errorbar(aes(ymin=risk_minus_SE, ymax=risk_plus_SE), position = dodge, width=0.5, size=1, lty=1) + 
    scale_colour_manual(values = c('black','red','blue')) + 
    facet_grid(~Status) + 
    scale_shape_manual(values = c(8,19))+ 
    theme_bw() + 
    scale_x_discrete(limits=c('(3-15]','(15-30]','(30-46]')) + 
    coord_cartesian(ylim = c(0, 0.8)) + 
    theme(legend.position = c(.1, .85), legend.background = element_rect(colour = "black"), 
     plot.title = element_text(lineheight=1.5, face="bold", size=rel(1.5), hjust = 0.5), 
     panel.grid.major.x = element_blank(), 
     axis.text.x = element_text(vjust=0.5, size=16), 
     axis.text.y = element_text(vjust=0.5, size=16), 
     axis.title.y = element_text(size=20), 
     axis.title.x = element_text(size=20), 
     legend.text = element_text(size = 16, face = "bold"), 
     strip.text = element_text(size=25)) + 
    xlab("\ntime (min)") + ylab("Risk") 

我想要做的是覆蓋一系列點在給定的x和y座標。

即處於With drugdurtn==(3,15] &,在手動插入點.....在紅色

  • 風險

    • 風險== 0.5 react=x≥04在黑色
    • 風險== 0.2 react=x≥09 = = 0.0對於react=x≥16藍色

    這樣,所需的輸出應該看起來像

    一個人如何結合使用geom_point()facet_griddodge

    enter image description here

  • 回答

    1

    首先,你必須創建一個包含附加點的數據單獨的數據幀。

    dat <- data.frame(risk_1 = c(0.5, 0.2, 0), 
            react = levels(df1$react), 
            durtn = '(3-15]', 
            Status = 'With drug') 
    

    這種新的數據幀dat可以與geom_point被用於附加層添加到現有的曲線圖。

    + geom_point(data = dat, position = dodge, shape = 4, size = 5, show.legend = FALSE) 
    

    enter image description here