web-dev-qa-db-ja.com

「エラー:不連続スケールに供給された連続値」デフォルトデータセットの例mtcarsおよびggplot2

次のコードを使用して ここの例(sthda.com) を複製しようとしています。

# Change point shapes and colors manually
ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, shape=cyl)) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  scale_shape_manual(values=c(3, 16, 17))+ 
  scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+
  theme(legend.position="top")

そのWebページの例では、コードは次の結果を生成する必要があると述べています。

plot

しかし、Rで実行すると、次のエラーが表示されます。

「エラー:不連続スケールに連続値が指定されました」

このコードの何が問題なのか誰にもわかりますか?または、なぜ例とは異なる結果が得られますか?

誰かがサンプルコードを実行して、同じエラーが発生したかどうかを教えてくれたら、とても感謝しています。

13

ええ、次のスニペットで修正できました:

ggplot(mtcars, aes(x=wt, y=mpg, color=as.factor(cyl), shape=as.factor(cyl))) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  scale_shape_manual(values=c(3, 16, 17))+ 
  scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+
  theme(legend.position="top")
14
Jonathan Hill

as.factorはそれを機能させる

ggplot(mtcars, aes(x=wt, y=mpg, color=as.factor(cyl), shape=as.factor(cyl))) +
  geom_point() + 
  geom_smooth(method=lm, se=FALSE, fullrange=TRUE)+
  scale_shape_manual(values=c(3, 16, 17))+ 
  scale_color_manual(values=c('#999999','#E69F00', '#56B4E9'))+
  theme(legend.position="top")
6
Andrew Lavers