我试图制作一个能够并排展示三件事的图形。首先是显示个人随时间的变化。接下来是显示其对等组随时间的变化。最后是显示整体人口随时间的变化。
每次观察我有四个时间点。我希望看到的是两组彼此相邻的箱形图,一组用于同行组,一组用于人口。对这些中的每一个都叠加了给定个体的数据点。每个集合将在time1,time2,time3和time4显示数据。叠加的点将传达每个人在每次的位置,因此信息可以在两组箱图中传达。
以下是模拟我正在使用的数据类型的代码,以及我创建情节的无效尝试。
peer <- c(rep(1, 15), rep(2, 41))
year <- rep(c(1, 2), 28)
pct <- rep(1:8, 7)
dat <- data.frame(cbind(peer, year, pct))
ggplot(dat, aes(peer==1, pct)) + geom_boxplot() + facet_grid(. ~ year)
我不认为我的ggplot
方法接近正确。请帮忙!
这是我想要做的事情的草图。
答案 0 :(得分:3)
这是否接近您的想法?每个In [13]: points=2*np.random.rand(1e6,3)-1;hull=ConvexHull(points)
In [14]: %timeit x=hit(np.ones(3),hull)
#array([ 0.98388702, 0.98388702, 0.98388702])
10000 loops, best of 3: 30 µs per loop
的{{1}}的每个值都有一个箱线图。我还列出了每组的平均值。
peer
您可以添加人口箱图,但随后情节开始变得混乱:
year
更新:根据您的评论,可能是这样的:
# Boxplots for each combination of year and peer, with means superimposed
ggplot(dat, aes(year, pct, group=interaction(year,peer), colour=factor(peer))) +
geom_boxplot(position=position_dodge(width=0.4), width=0.4) +
stat_summary(fun.y=mean, geom="line", position=position_dodge(width=0.4),
aes(group=peer)) +
stat_summary(fun.y=mean, geom="point", position=position_dodge(width=0.4), size=4,
aes(group=peer)) +
scale_x_continuous(breaks=unique(dat$year))
这是第一张情节的样子: