我有两个函数a
和b
,每个函数从1-3中取值x
并生成估计值和错误。
x variable estimate error
1 a 8 4
1 b 10 2
2 a 9 3
2 b 10 1
3 a 8 5
3 b 11 3
我想在ggplot中使用geom_path()来绘制x增加时每个函数的估计值和误差。
所以如果这是数据:
d = data.frame(x=c(1,1,2,2,3,3),variable=rep(c('a','b'),3),estimate=c(8,10,9,10,8,11),error=c(4,2,3,1,5,3))
然后我想要的输出类似于输出:
ggplot(d,aes(x,estimate,color=variable)) + geom_path()
但每个点的线条粗细等于误差的大小。我可能需要使用像geom_polygon()
这样的东西,但是如果不手动计算一系列坐标,我就无法找到一个好方法。
如果有一种更好的方法可视化这些数据(y值在离散x值处具有置信区间),那将是很好的。我不想使用条形图,因为我实际上有两个以上的函数,并且很难跟踪任何特定函数的变化估计/误差,每个x值都有一大组条形。
答案 0 :(得分:1)
简短的回答是,您需要将size
映射到error
,以便几何对象的大小会根据值error
而变化。有很多方法可以按照你的建议做你想做的事。
df = data.frame(x = c(1,1,2,2,3,3),
variable = rep(c('a','b'), 3),
estimate = c(8,10,9,10,8,11),
error = c(4,2,3,1,5,3))
library(ggplot2)
ggplot(df, aes(x, estimate, colour = variable, group = variable, size = error)) +
geom_point() + theme(legend.position = 'none') + geom_line(size = .5)
答案 1 :(得分:0)
我找到了geom_ribbon()
。答案是这样的:
ggplot(d,aes(x,estimate,ymin=estimate-error,ymax=estimate+error,fill=variable)) + geom_ribbon()