0

平均と交互作用の単純な折れ線グラフを作成しようとしていました。y 軸に DV (読み取り回数)、x 軸に 1 つの要因 (長さ)、グループ化変数 (位置) として別の要因があります。

私が使用した構文は以下のとおりです。データは、2 つの長さ条件のそれぞれについて線上の単一の点としてプロットされましたが、2 つの長さ条件の間の線には接続されませんでした。構文に関して何が欠けていますか?

私は R i386 2.15.2 を使用しており、先週 ggplot2 を更新しました。

ここに再現可能な例があります

SubjectID <- c(101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,
        201,201,201,201,201,201,201,201,202,202,202,202,202,202,202,202)
Group <- c("PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA","PWA",
        "PWA","PWA","PWA","PWA","PWA","Control","Control","Control",
        "Control","Control","Control","Control","Control","Control",
        "Control","Control","Control","Control","Control","Control",
        "Control")
Length <- c(1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2)
Pos <- c(1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2,1,1,2,2)
ReadT <- c(6.7,7.6,6.4,7.9,5.4,6.4,6.3,7.4,6.9,7.2,6.7,7.4,5.7,6.1,6.5,7.8,
        6.1,5.7,4.9,6.1,4.7,6.5,6.1,6.2,6.9,5.9,4.8,6.5,4.6,6.3,6.7,6.6)

data <- data.frame (SubjectID, Group,Length,Pos,ReadT)
data$Length <- factor(data$Length, order = TRUE,
        levels = c(1,2),
        labels = c("Length 1", "Length 2"))
data$Pos <- factor(data$Pos, order = TRUE,
        levels = c(1,2),
        labels = c("Position 1", "Position 2"))

qplot(Length, data=data, ReadT, geom=c("point", "line"), 
    stat="summary", fun.y=mean, group=Pos, colour=Pos, 
    facets = ~Group)
4

1 に答える 1

1

矛盾を再現したとは思いませんが、すべてを1回のqplot呼び出しに凝縮しようとすると、問題の一部が曇ってしまいます。

あなたのx変数Lengthは要因であるため、ggplot賢明に考慮され、独立していると考えられてLength 1おりLength 2、線を接続しません。

第二に、これらを要因(したがって独立)にすることなく、値でstat_summary要約するために使用することはできません。x

ggplotに依存せずに、データを要約するのが最も簡単だと思います。

例えば

library(plyr)
data.means <- ddply(data, .(Group, Pos, Length), summarize, ReadT = mean(ReadT))

ggplot次に、 notを使用してプロットを作成し、qplot必要な柔軟性(および透明性)を提供します。

回線を接続するための秘訣は、たとえばここを参照するためxに、呼び出し内で数値を考慮することです。geom_line

ggplot(data.means, aes(x= Length, y= ReadT, colour = Pos)) + 
 geom_point() +
 geom_line(aes(x=as.numeric(Length))) +
 facet_grid(~Group)

生データとstat_xxxx関数の使用を主張した場合は、これを複製しstat_smoothて平均を推定することもできます(x数値として分類されたままになります)

ggplot(data, aes(x = Length, y= ReadT, colour = Pos)) + 
 stat_summary(fun.y = 'mean', geom = 'point')+
 stat_smooth(method = 'lm', aes(x=as.numeric(Length)), se = FALSE) +
 facet_grid(~Group)
于 2013-02-26T23:49:07.297 に答える