タクのRデザインツールはggplot2 stat_summary
だと私はbarplot
を拒否しました。ggplot stat_summaryで2つのコラムを表示するにはどうすればいいですか?
ここでの問題は、合計M.1.sum
とM.2.sum
の列ヘッダーECG 1
とECG 2
とRテーブル構造の宣言であり、それぞれ、と思います。 means.long <- melt(M.1.sum, M.2.sum)
でやろうとしています。 M.1.sum
とM.2.sum
の各項目は、対応する行方向のIDがids
であり、データ構造そのものにも含める必要があります。 テーブルの列宣言と行宣言の提案は、aes(x=ids, y=value)
です。ここで、value
は約ggplot
宣言の和です。 コード
library('ggplot2')
library('reshape2')
M <- structure(c(-0.21, -0.205, -0.225, -0.49, -0.485, -0.49,
-0.295, -0.295, -0.295, -0.56, -0.575, -0.56, -0.69, -0.67,
-0.67, -0.08, -0.095, -0.095), .Dim = c(3L, 6L))
M2 <- structure(c(-0.121, -0.1205, -0.1225, -0.149, -0.485, -0.49,
-0.295, -0.295, -0.295, -0.56, -0.1575, -0.56, -0.69, -0.67,
-0.117, -0.08, -0.1095, -0.1095), .Dim = c(3L, 6L))
ids <- seq(1,6)
M.1.sum <- colSums(M)
M.2.sum <- colSums(M2)
# http://stackoverflow.com/q/22305023/54964
means.long <- melt(M.1.sum, M.2.sum)
ggplot(means.long, aes(x=ids, y=value))+ # ,fill=factor(ids))) +
stat_summary(fun.y=mean, geom="bar",position=position_dodge(1)) +
scale_fill_discrete(name="ECG",
breaks=c(1, 2),
labels=c("1", "2"))+
stat_summary(fun.ymin=min,fun.ymax=max,geom="errorbar",
color="grey80",position=position_dodge(1), width=.2) +
xlab("ID")+ylab("Sum potential")
#deprecated because stat_summary designed for the case
#barplot(M.1.sum, ids)
#barplot(M.2.sum, ids)
出力は見えない右
予想される出力:2つの項目
ので、この1 fill=factor(ids)))
を使用する方法がわからない
はR:3.3.1
OS:ggplot
でのDebian 8.5
データ(またはデータのサンプル)を 'dput()'で再現可能に共有してください。コピー/ペースト可能で、データ構造を複製します。 – Gregor
Tbh、 'sprintf(" sum(sum) ")'行はあまり役に立ちません。コンソールに表示されているコマンドと出力を表示するだけで明確になります。データを最小限に抑えるには、 'dput(head(M、20))'または類似のものを試してください。その他のアドバイスはこちら:http://stackoverflow.com/a/28481250/ – Frank
また、 'sprintf(" M ")'のような行のポイントは何ですか?確かにこれは文字 "M"を印刷するだけです。関連性は何ですか? – Gregor