2017-10-10 56 views
0

有兩種方法可以疊加兩個具有不同x軸的圖嗎?如何在R中疊加2個具有相同y軸但不同x軸的圖

我有一個患者在不同日期服用不同藥物時收縮壓的數據集。我想創建一個他們的收縮壓的散點圖,並在每種藥物上疊加他們的SBP盒子圖。我分別創建了這兩個地塊,但無法弄清楚如何將它們合併成一個數字。

library(ggplot2) 
library(lubridate) 

df <- data.frame(date = c(ymd("2014-09-01") + c(1:5), ymd("2014-09-11") + c(1:5), ymd("2014-09-21") + c(1:5)), sbp1 = round(runif(n=15, min=130, max=200)), group = c(rep("A",5), rep("B",5), rep("C", 5))) 
p1 <- ggplot(df, aes(x=date, y=sbp1)) + geom_point(aes(color = group)) 
p2 <- ggplot(df, aes(x=group, y=sbp1)) + geom_boxplot(aes(x=group, y = sbp1)) 
p1 
p2 

p1 p2

回答

0

你必須決定如何映射的x座標到一個單一的規模 - 例如,就像在撿一個日期爲整個集團:

df %>% 
    group_by(group) %>% 
    mutate(groupdate = first(date) + 3) %>% 
    ggplot(aes(y = sbp1)) + 
    geom_boxplot(aes(x = groupdate, group = group)) + 
    geom_point(aes(x = date, colour = group)) 

然後你可以疊加通過+互相頂部的ggplot幾何圖形。感覺有點哈克,但會產生這樣的:

points and boxplots on the same axis

+0

這正是我要找的!感謝堆! – FettahP

相關問題