17

標準のRグラフィックを使用して箱ひげ図に線形モデルの傾向線を追加する場合、次を使用します。

boxplot(iris[,2]~iris[,1],col="LightBlue",main="Quartile1 (Rare)")
modelQ1<-lm(iris[,2]~iris[,1])
abline(modelQ1,lwd=2)

ただし、これをggplot2で使用する場合:

a <- ggplot(iris,aes(factor(iris[,1]),iris[,2]))
a + geom_boxplot() +
geom_smooth(method = "lm", se=FALSE, color="black", formula=iris[,2]~iris[,1])

次のエラーが発生します。

geom_smooth: Only one unique x value each group.Maybe you want aes(group = 1)?

そして、線は私のプロットに表示されません。

これらのシナリオの両方で使用されるモデルは同一です。誰かが私がどこで間違っているのか指摘できれば、それは素晴らしいことです。

編集:例としてアイリスデータセットを使用しました。

4

2 に答える 2

25

エラーメッセージはほとんど自明です:aes(group=1)追加geom_smooth

ggplot(iris, aes(factor(Sepal.Length), Sepal.Width)) +
  geom_boxplot() +
  geom_smooth(method = "lm", se=FALSE, color="black", aes(group=1))

ここに画像の説明を入力してください

于 2012-06-06T09:49:14.547 に答える
1

参考までに、このエラーは、次のような単純なqplotインターフェイスを使用して発生(および修正)することもできます。ggplot2

エラーメッセージは、少なくとも少数の人にとっては十分に説明的ではありません:-)。この場合、重要なのは、提案された美的感覚の内容のみを含めることです。

library(ggplot2)
qplot(factor(Sepal.Length), Sepal.Width, geom = c("smooth"), data= iris)
# error, needs aes(group=1)
qplot(factor(Sepal.Length), Sepal.Width, geom = c("smooth"), group = 1, data= iris)
于 2015-08-04T21:24:20.157 に答える