【问题标题】:ggvis side-by-side barchart grouped by second variableggvis 并排条形图按第二个变量分组
【发布时间】:2015-02-17 02:33:03
【问题描述】:

我正在从 Excel 迁移到 ggvis 以进行数据分析。对于具有两个变量的典型分组条形图,但是我很难绘制 并排而不是堆叠条形图

以下数据有四个步骤 A、B、C、D,其中包含来自两个特征 cc、ca 的“比率”数据。我的尝试是并排绘制 cc 和 ca 特征的比率。但是,默认绘图将两个数据堆叠在一起。检查 ggvis vignetts 是否有设置堆栈 =FALSE 的选项。但它会与其他功能重叠。

ggvis 中是否有选项可以在 ggplot 中执行“geom_bar(position="dodge")”之类的操作?

library(ggvis)
steps <-c("A","B","C","D","A","B","C","D")
ratio <-c(1.1,1.5,1.7,1.4,1.5,1.7,1.4,1.9)
feature <-c("cc","cc","cc","cc","ca","ca","ca","ca")
shrink <- data.frame(steps,ratio,feature)
shrink %>% ggvis(x= ~steps, y= ~ratio, fill = ~feature) %>% layer_bars()

【问题讨论】:

    标签: r bar-chart ggvis


    【解决方案1】:

    我还没有看到一个简单的方法来做到这一点。但解决方法是将 x 轴明确定义为 x 和 fill 变量的组合:

    library(ggivs)
    library(dplyr)
    
    steps <-c("A","B","C","D","A","B","C","D")
    ratio <-c(1.1,1.5,1.7,1.4,1.5,1.7,1.4,1.9)
    feature <-c("cc","cc","cc","cc","ca","ca","ca","ca")
    shrink <- data.frame(steps,ratio,feature)
    
    
    shrink %>% 
       mutate(steps_feature = factor(paste(steps, feature))) %>%
       ggvis(x= ~steps_feature, y= ~ratio, fill = ~feature) %>% 
       layer_bars(stack = FALSE) 
    

    并不完全令人满意 - 您希望控制条形之间的间隙,并且可能更改标签 - 但方向正确。无论如何,我不太喜欢这些情节,我发现它们在视觉上令人困惑,尽管它们是周围最常见的情节之一。

    我知道这不是您所要求的,并且一些用户需要一段时间才能习惯它们,但我更喜欢包含此类数据的散点图:

    library(tidyr)
    shrink %>%
       spread(feature, ratio) %>%
       ggvis(x = ~ca, y = ~cc, text := ~steps) %>%
       layer_text(fontSize := 35)
    

    【讨论】:

    • 感谢 Peter 解决代码问题。这是最常见的条形图之一,我希望 ggvis 以后可以选择。
    • 这个答案有什么更新吗?该功能仍然不可用?
    • 我赞成这个问题。我一直在搜索文档,但找不到任何更新。我不同意他们令人困惑,但“最常见的情节”往往也被要求最多(可悲)。
    猜你喜欢
    • 1970-01-01
    • 2016-12-18
    • 2014-04-13
    • 2021-10-16
    • 1970-01-01
    • 2013-02-15
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多