1

2 つのレイヤーで散布図をプロットしようとしています。その理由は、ポイントのサイズを回答の数で表したいからです。次に、その上に滑らかな曲線を配置する必要があります。そのため、これを実現するために 2 つのデータセットを使用します。問題は、元のデータセットを使用してスムーザーを使用して 2 番目のレイヤーを配置すると、スムーザーが x スケールで左に 1 ポイント移動することです。

Rコードでこれを修正する方法を知っている人はいますか? 何か問題があるのでしょうか?x 変数に 1 を追加しようと考えましたが、ここまでする必要はありません。

library(ggplot2)

q.tab <- xtabs(~x + y, mydata)
q.df <- as.data.frame(q.tab)
pointsize <- q.df$Freq
qplot(x, y, data=q.df) + geom_point(aes(size=as.factor(pointsize)))
+ geom_smooth(data=mydata, method="loess", span=1))

ここに画像の説明を入力

4

1 に答える 1

0

ggplot2 では、レイヤーの観点から考えると、qplot ではなく ggplot 関数を使用することをお勧めします。

私はあなたのデータを生成します(サンプル関数はデータを生成するのに非常に便利です)

mydata$x <- sample(1:10,100,replace=TRUE)
mydata$y <- sample(1:10,100,replace=TRUE)
q.tab <- xtabs(~x + y, mydata)
q.df <- as.data.frame(q.tab)

ggplot バージョン:

 library(ggplot2)
 ggplot(data=mydata,aes(x,y,size=Freq)) +
      geom_point() + 
      geom_smooth( method="loess", span=1)

qplot バージョン:

qplot(data=mydata,x=x,y=y,size=Freq,geom='point')+
  geom_smooth( method="loess", span=1)

ここに画像の説明を入力

于 2012-12-05T14:04:52.490 に答える