R 水平堆叠 ggvis 条形图

标签 r bar-chart ggvis

使用这个小数据集:

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 轻松创建垂直堆叠的条形图
library(ggvis)
df %>%
  ggvis(x=~variable, y=~value, fill=~colour) %>%
  group_by(colour) %>%
  layer_bars()

enter image description here

但我无法弄清楚如何有一个水平堆叠的条形图。我想我应该以某种方式使用 layer_rects但到目前为止我能得到的最好的只是绘制了一组。
df %>%
  ggvis(x =~value, y=~variable, fill =~ colour) %>%
  group_by(colour) %>%
  layer_rects(x2 = 0, height = band())

enter image description here

最佳答案

那是因为 layer_bars()自动堆叠,layer_rects()没有。您需要使用 compute_stack() 明确说明堆栈.

df %>%
  ggvis(y = ~variable, fill = ~colour) %>%
  compute_stack(stack_var = ~value, group_var = ~variable) %>% 
  layer_rects(x = ~stack_lwr_, x2 = ~stack_upr_, height = band()) 

这使:

enter image description here

注:看看这段代码,你可能想知道 stack_lwr_ 在哪里和 stack_upr_论据来自。看看source code看看它是如何工作的

关于R 水平堆叠 ggvis 条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265199/

相关文章:

r - ggvis 中带有数字的热图

r - ggvis:交互图

r - 有人在 R 中实现 Eureqa 的接口(interface)吗?

python - 每个色调带有堆叠条的计数图

r - 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n?

Extjs 4 : Time Stacked Bar Chart, 可能吗?

r - ggvis - 显示为 'NaN' 的自定义非数字 y 轴标签

r - 我们可以在同一个面板中用 Shiny 打印或绘图吗?

r - 消除R中美国电话号码前面的前导 '1'

r - Guy Yollin 的 QuantStrat I 讲座问题