1

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

有谁知道,如何在 R 代码中纠正这个问题?它可能有什么问题吗?我想将 1 添加到 x 变量,但我不想走这么远。

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

With ggplot2 , when you think in terms of layer it is better to use ggplot function and not qplot.

I generate your data (sample function is very convenient to generate data)

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 version:

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

qplot version:

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

enter image description here

于 2012-12-05T14:04:52.490 回答