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