【发布时间】:2019-05-26 13:47:27
【问题描述】:
我正在与美国社区调查 (ACS) 合作,对特定位置的 1 年估计数进行了数年。例如,我试图绘制男性和女性骑自行车上班的比例如何随时间变化。从 ACS 中,我得到估计值和标准误差,然后我可以使用它们来计算估计值的上限和下限。
所以宽格式的简化数据结构是这样的:
| Year | EstimateM | MaxM | MinM | EstimateF | MaxF | MinF |
|------|-----------|------|------|-----------|------|------|
| 2005 | 3.0 | 3.5 | 2.5 | 2.0 | 2.3 | 1.7 |
| 2006 | 3.1 | 3.5 | 2.6 | 2.0 | 2.3 | 1.7 |
| 2007 | 5.0 | 4.2 | 5.8 | 2.5 | 3.0 | 2.0 |
| ... | ... | ... | ... | ... | ... | ... |
如果我只想绘制估计值,我会 melt 将只有两个 Estimate 变量的数据设为 measure.vars
GenderModeCombined_long <- melt(GenderModeCombined,
id = "Year",
measure.vars = c("EstimateM",
"EstimateF")
然后可以使用ggplot2 轻松绘制长数据
ggplot(data=GenderModeCombined_long,
aes(x=year, y=value, colour=variable)) +
geom_point() +
geom_line()
这会产生一个像这样的图表
(抱歉,没有足够的代表来发布图片)
我遇到的困难是如何在两个估计图中添加误差线。我可以将它们作为measure vars 添加到融化的数据集中,但是我如何告诉ggplot 应该将什么绘制为值以及什么作为误差线?我是否必须只使用最小/最大数据创建一个单独的数据框,然后单独加载?
geom_errorbar(data = errordataMmax, aes(ymax = ??, ymin = ??))
我感觉我以错误的方式处理这个问题和/或我的数据设置错误。
【问题讨论】:
-
如果你可以让这个问题可重现,你更有可能得到一个有用的答案..
标签: r dataframe ggplot2 time-series errorbar