我想添加一个带有水平线的条形图来分隔填充区域。我使用以下代码,工作正常。
bar1 = ggplot(mtcars, aes(x = factor(1), fill = factor(cyl))) + geom_bar(width = 1)
tbl = cumsum(table(mtcars$cyl))
bar1 + geom_hline(aes(yintercept = tbl[1:2]), color = 'white', size=2) +
geom_hline(aes(yintercept = tail(tbl, 1)), color = 'white', size = 2 )
但是,如果我将两个geom_hline()
方法合并为一个,则会出错。
bar1 + geom_hline(aes(yintercept = tbl), color = 'white', size=2)
# Error in data.frame(yintercept = c(11L, 7L, 14L), PANEL = c(1L, 1L, 1L, :
# arguments imply differing number of rows: 3, 32
为什么我不能只使用geom_hline
在方法调用中绘制3条水平线?
答案 0 :(得分:1)
尝试
bar1 = ggplot(mtcars, aes(x = factor(1), fill = factor(cyl))) + geom_bar(width = 1)
tbl = cumsum(table(mtcars$cyl))
bar1 + geom_hline(data=data.frame(tbl), aes(yintercept = tbl), color = 'white', size=2)