ggplot2中的第二层移动了一个

时间:2012-12-05 11:49:24

标签: r layer ggplot2

我试图用两层绘制散点图。原因是我想通过答案数来表示点的大小。然后我需要在它上面铺设一条平滑的曲线。所以我使用两个数据集来实现这一目标。 问题是,当我使用原始数据集铺设具有平滑器的第二层时,平滑器在x刻度上向左移动一个点。

有谁知道,如何在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))

enter image description here

1 个答案:

答案 0 :(得分:0)

使用ggplot2,当你考虑层时,最好使用ggplot函数而不是qplot。

我生成你的数据(样本函数生成数据非常方便)

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)

enter image description here