r - ggvis 中的 Position_fill 函数是否等效?

标签 r ggplot2 ggvis

尝试在 ggvis 中复制 ggplot 函数 position="fill"。我一直在展示结果时使用这个方便的功能。在 ggplot2 + ggvis 代码中成功执行的可重现示例。可以使用 scale_numeric 函数来完成吗?

library(ggplot2)
p <- ggplot(mtcars, aes(x=factor(cyl), fill=factor(vs)))
p+geom_bar()
p+geom_bar(position="fill")

library(ggvis)
q <- mtcars %>%
  ggvis(~factor(cyl), fill = ~factor(vs))%>%
  layer_bars()

# Something like this?
q %>% scale_numeric("y", domain = c(0,1))

最佳答案

我认为要用 ggvis 做这类事情,你必须在将数据发送到 ggvis 之前进行大量的数据 reshape 提升。 ggplot2 的 geom_bar 可以轻松地为您做很多计算(计数、加权等),您需要自己在 ggvis 中明确地做这些计算。所以试试下面的方法(可能有更优雅的方法):

mtcars %>%
   mutate(cyl=factor(cyl), vs=as.factor(vs)) %>%
   group_by(cyl, vs) %>%
   summarise(count=length(mpg)) %>%
   group_by(cyl) %>%
   mutate(proportion = count / sum(count)) %>%
   ggvis(x= ~cyl, y = ~proportion, fill = ~vs) %>%
   layer_bars()

enter image description here

关于r - ggvis 中的 Position_fill 函数是否等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26488591/

相关文章:

r - 如何模块化 Shiny 的动态ggvis图表?

r - 比较两个数据框中的数据并隔离结果

r - 具有重复观察的 ggplot 熔解数据

r - R 中的圆形堆积条形图

r - 向图例元素组添加注释和段

r - ggvis 中带有数字的热图

r - 我如何调用其他人编写的这个 R 函数?

r - 如何使用 ggplot2 在条形图上叠加一条线?

r - Geom_points 未绘制在 ggplot map 上

r - ggvis 将 ":= "与 data.table 结合使用