我正在尝试创建一些相当简陋的线图,但似乎无法找到合适的函数。我可以使用mtcars数据集来描述我想要做的事情,我希望你能够给我一个正确的方向。
我想在x轴上绘制cyl,在y轴上绘制disp的MEAN值(对于cyl的每个值)。使用整个数据集。然后在TOP上,我想在x轴上绘制cyl,在y轴上绘制disp的平均值,但是当VS == 1时。那么相同的东西,一个类似的子群,当vs == 0时。所以会有三条线,每条线都跟踪一次。最终我也会制作这些不同的颜色/样式,但是现在我只是试图获得折线图。
有什么想法?非常感谢!
答案 0 :(得分:1)
在stat_summary
中使用ggplot2
:
library(ggplot2)
ggplot() +
# cyl on the x-axis and the MEAN value of disp (for each value of cyl)
stat_summary(aes(x=cyl,y=disp,col='all vs'),data=mtcars,fun.y='mean',geom='line') +
# cyl on the x-axis and the mean value of disp on the y-axis BUT ONLY WHEN VS == 1 .
stat_summary(aes(x=cyl,y=disp,col='vs=1'),data=subset(mtcars,vs==1),
fun.y='mean',geom='line') +
# Then the same thing, a similar subgroup, for when vs==0.
stat_summary(aes(x=cyl,y=disp,col='vs=0'),data=subset(mtcars,vs==0),
fun.y='mean',geom='line') +
theme(legend.title=element_blank())
答案 1 :(得分:1)
您可以使用stat_summary
执行此类操作,但对于更复杂的摘要,实际上可能更容易预先执行此操作(例如,使用dplyr
或plyr::ddply
)和然后将其提供给ggplot2
。
library("ggplot2"); theme_set(theme_bw())
ggplot(mtcars,aes(cyl,disp))+stat_summary(fun.y=mean,
geom="line",
lwd=1.5)+
stat_summary(aes(lty=factor(vs)),fun.y="mean",geom="line")+
scale_x_continuous(breaks=c(4,6,8),labels=c("four","6","8"))