首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R水平叠加式ggvis

R水平叠加式ggvis
EN

Stack Overflow用户
提问于 2015-10-21 17:03:28
回答 1查看 2.1K关注 0票数 5

使用这个小数据集:

代码语言:javascript
复制
df <- structure(list(colour = structure(c(1L, 2L, 1L, 2L), .Label = c("Black", 
"White"), class = "factor"), variable = c("A", "A", "B", "B"), 
    value = c(1, 2, 0.74, 0.85)), row.names = c(NA, -4L), .Names = c("colour", 
"variable", "value"), class = "data.frame")

我可以很容易地用ggvis创建一个垂直叠加的条形图。

代码语言:javascript
复制
library(ggvis)
df %>%
  ggvis(x=~variable, y=~value, fill=~colour) %>%
  group_by(colour) %>%
  layer_bars()

但我想不出怎样才能有一个水平堆叠的条形图。我想我应该以某种方式使用layer_rects,但到目前为止,我能得到的最好结果只是一个组。

代码语言:javascript
复制
df %>%
  ggvis(x =~value, y=~variable, fill =~ colour) %>%
  group_by(colour) %>%
  layer_rects(x2 = 0, height = band())

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-21 17:31:14

这是因为layer_bars()堆栈是自动的,而layer_rects()不是。您需要明确使用compute_stack()的堆栈。

代码语言:javascript
复制
df %>%
  ggvis(y = ~variable, fill = ~colour) %>%
  compute_stack(stack_var = ~value, group_var = ~variable) %>% 
  layer_rects(x = ~stack_lwr_, x2 = ~stack_upr_, height = band()) 

这意味着:

注意:看看这段代码,您可能会想知道stack_lwr_stack_upr_参数是从哪里来的。看看source code,看看它是如何在引擎盖下工作的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33265199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档