【发布时间】:2020-06-08 21:55:38
【问题描述】:
考虑如下所示的数据
fitem<-rep(rep(1:16,each=3),2)
fsubs<-factor(rep(rep(paste('sub',1:3,sep=''),16),2))
ftime<-factor(as.character(rep(c('a','b'),each=48)))
fcounts<-as.numeric(round(runif(96,1,10)))
fdf<-data.frame(fsubs,fitem,fcounts,ftime)
head(df)
fsubs fitem fcounts ftime
1 sub1 1 8 a
2 sub2 1 10 a
3 sub3 1 4 a
4 sub1 2 4 a
5 sub2 2 1 a
6 sub3 2 6 a
我想绘制一个分面网格,显示两个时间点('a','b')的计数,以主题为单位。我似乎无法弄清楚如何在 ggplot 中绘制它
这是我的丑陋尝试
fdf_counts<-data.frame()
for (i in unique(fdf$fsubs)){
fdf_counts<-append(fdf_counts,cbind(fdf%>%filter(fsubs==i,ftime=='a')%>%dplyr::select(fcounts),
fdf%>%filter(fsubs==i,ftime=='b')%>%dplyr::select(fcounts)))
fdf_counts<-data.frame(fdf_counts)
}
s1<-ggplot(fdf_counts,aes(x=fcounts,y=fcounts.1))+geom_point()+geom_smooth(method='lm')+labs(x='a',y='b',title='sub1')
s2<-ggplot(fdf_counts,aes(x=fcounts.2,y=fcounts.3))+geom_point()+geom_smooth(method='lm')+labs(x='a',y='b',title='sub2')
s3<-ggplot(fdf_counts,aes(x=fcounts.4,y=fcounts.5))+geom_point()+geom_smooth(method='lm')+labs(x='a',y='b',title='sub3')
plot_grid(s1,s2,s3)#from 'cowplot' package
如何使用原始的fdf data.frame 做到这一点?尤其是随着订阅人数的增加
或者例如,如果我想在所有子系统中绘制一个散点图,其中 fcounts 以 ftime(a) 为 x 轴,ftime(b) 为 y 轴?
【问题讨论】:
-
两个时间点是什么?
-
时间点是因素'a','b',如果不清楚,抱歉!
标签: r ggplot2 scatter-plot facet-grid