2017-12-31 108 views
0

Das Paket ggpubr bietet die Funktion ggpaired, um gepaarte Daten zu plotten. Es hat keine Option add='jitter' wie ggboxplot tut.Hinzufügen von Jitter zu ggpaired

Ist es möglich, einen ähnlichen Effekt mit anderen Mitteln zu erreichen?

Beispiel aus der Dokumentation:

require(ggplot) 
require(ggpubr) 
before <-c(200.1, 190.9, 192.7, 213, 241.4, 196.9, 172.2, 185.5, 205.2, 193.7) 
after <-c(392.9, 393.2, 345.1, 393, 434, 427.9, 422, 383.9, 392.3, 352.2) 
d <- data.frame(before = before, after = after) 
ggpaired(d, cond1 = "before", cond2 = "after", add="jitter") 


data("ToothGrowth") 
df <- ToothGrowth 
ggboxplot(df, x = "dose", y = "len", width = 0.8, add="jitter") 
+1

Vielleicht ist die [Funktion bearbeitet werden könnten] (https://github.com/kassambara/ggpubr/blob/master/R/ggpaired.R#L124) für 'Position vorzusehen = "Jitter". Oder ziehen Sie in Erwägung, eine Feature-Anforderung zum GitHub-Repo hinzuzufügen. –

Antwort

3

Hier sind einige Ideen für einen Plot ähnlich der, die durch ggpaired aber mit Jitterbasierten Punkten.

library(ggplot2) 
before <- c(200.1, 190.9, 192.7, 213, 241.4, 196.9, 172.2, 185.5, 205.2, 193.7) 
after <- c(392.9, 393.2, 345.1, 393, 434, 427.9, 422, 383.9, 392.3, 352.2) 
n <- length(before) 
d <- data.frame(y = c(before, after), 
       x = rep(c(1,2), each=n), 
       id = factor(rep(1:n,2))) 

set.seed(321)  
d$xj <- jitter(d$x, amount=.03) 
ggplot(data=d, aes(y=y)) + 
    geom_boxplot(aes(x=x, group=x), width=0.2, outlier.shape = NA) + 
    geom_point(aes(x=xj)) + 
    geom_line(aes(x=xj, group=id)) + 
    xlab("Condition") + ylab("Value") + 
    scale_x_continuous(breaks=c(1,2), labels=c("Before", "After"), limits=c(0.5, 2.5)) + 
    theme_bw() 

enter image description here

Verwandte Themen