1

次のようなRで図を作成しようとしています

![](http://imgur.com/Srt9L_png)

インターリーブされた 2 つの異なるデータセットからの数値を含む列。私はこのコードを使用して、難しいことのほとんどを完了しました

library(gplots)
meang7 <- c(355.8303, 241.9443, 253.2399, 356.4712, 779.6908, 1444.0087, 1215.7648)
meang4 <- c(196.97559, 185.70940, 190.80855, 165.82834, 190.64914, 152.46845, 85.21208)
SEMg7 <- c(20.13935, 20.74347, 19.35914, 28.60324, 53.02302, 84.71020, 86.93199)
SEMg4 <- c( 9.469664, 7.515927, 12.500072, 10.379942, 4.455329, 15.124991, 6.888774)
barg7 <- barplot(meang7, main="C. Sapidus 35-22 ppt",     names.arg=c(0,6,12,24,48,96,168),ylim=c(0,1700), col="gray", axis.lty=1, xlab="Time Post     Transfer (hr)", ylab="CA Activity (μmol CO2 mg protein−1 min−1)")
barg4 <- barplot(meang4, col="blue", add=TRUE)
plotCI(x=barg7, y=meang7, uiw=SEMg7, lty=1, gap=0, add=TRUE)
plotCI(x=barg4, y=meang4, uiw=SEMg4, lty=1, gap=0, add=TRUE)

取得するため

ここまで ここに画像の説明を入力

しかし、重複するのではなく、列をインターリーブする方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

2

ここにあります。2つのベクトルを行ごとに行列に結合し、次のbesideパラメーターを使用する必要がありbarplot()ます。

library(gplots)
meang7 <- c(355.8303, 241.9443, 253.2399, 356.4712, 779.6908, 1444.0087, 1215.7648)
meang4 <- c(196.97559, 185.70940, 190.80855, 165.82834, 190.64914, 152.46845, 85.21208)
SEMg7 <- c(20.13935, 20.74347, 19.35914, 28.60324, 53.02302, 84.71020, 86.93199)
SEMg4 <- c( 9.469664, 7.515927, 12.500072, 10.379942, 4.455329, 15.124991, 6.888774)
barg <- barplot(matrix(c(meang7,meang4),nrow=2,byrow=TRUE), main="C. Sapidus 35-22 ppt", names.arg=c(0,6,12,24,48,96,168), ylim=c(0,1700), col=c("gray","blue"), axis.lty=1, xlab="Time Post Transfer (hr)", ylab="CA Activity (μmol CO2 mg protein−1 min−1)", beside=TRUE)
plotCI(x=barg[1,], y=meang7, uiw=SEMg7, lty=1, gap=0, add=TRUE)
plotCI(x=barg[2,], y=meang4, uiw=SEMg4, lty=1, gap=0, add=TRUE)
于 2013-01-08T21:03:58.910 に答える
0

最初に、reshape パッケージを使用して、データをより便利な長い形式に再形成する必要があります。

library(reshape)
library(ggplot2)
meang7 <- c(355.8303, 241.9443, 253.2399, 356.4712, 779.6908, 1444.0087, 1215.7648)
meang4 <- c(196.97559, 185.70940, 190.80855, 165.82834, 190.64914, 152.46845, 85.21208)
SEMg7 <- c(20.13935, 20.74347, 19.35914, 28.60324, 53.02302, 84.71020, 86.93199)
SEMg4 <- c( 9.469664, 7.515927, 12.500072, 10.379942, 4.455329, 15.124991, 6.888774)
hours <- as.factor(c(0,6,12,24,48,96,168))
d <- data.frame(m7=meang7, m4=meang4, hours=hours )
d <- melt(d, measure.vars=c("m7", "m4"))
d$se <- c(SEMg7, SEMg4)

標準誤差を使用して誤差範囲の制限を作成し、ggplot を使用してプロットします。

limits <- aes(ymax=d$value + d$se, ymin=d$value - d$se)
ggplot(d, aes(x=hours, y=value, fill=variable)) + geom_bar(stat="identity", position="dodge") + geom_errorbar(ymax=d$value + d$se, ymin=d$value-d$se) + scale_y_continuous(limits=c(0, 1600))
于 2013-01-08T21:03:49.550 に答える