【问题标题】:R Horizontal Stacked ggvis BarplotR水平堆叠ggvis条形图
【发布时间】:2015-10-21 17:03:28
【问题描述】:

使用这个小数据集:

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()

但我无法弄清楚如何制作水平堆叠的条形图。我想我应该以某种方式使用layer_rects,但到目前为止我能得到的最好的结果只是绘制了一组。

df %>%
  ggvis(x =~value, y=~variable, fill =~ colour) %>%
  group_by(colour) %>%
  layer_rects(x2 = 0, height = band())

【问题讨论】:

    标签: r bar-chart ggvis


    【解决方案1】:

    那是因为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()) 
    

    这给出了:


    注意:查看这段代码,您可能想知道stack_lwr_stack_upr_ 参数从何而来。看看source code 看看它是如何工作的

    【讨论】:

    • 非常好,正是我需要的。谢谢
    猜你喜欢
    • 2012-05-11
    • 1970-01-01
    • 2016-10-29
    • 2015-02-11
    • 2020-04-10
    • 2021-10-08
    • 1970-01-01
    • 2022-10-13
    • 2014-11-12
    相关资源
    最近更新 更多