r - 按第二个变量分组的 ggvis 并排条形图

标签 r bar-chart ggvis

我正在从 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()

最佳答案

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

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) 

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

我知道这不是你问的,有些用户需要一些时间来适应它们,但我更喜欢带有此类数据的散点图:
library(tidyr)
shrink %>%
   spread(feature, ratio) %>%
   ggvis(x = ~ca, y = ~cc, text := ~steps) %>%
   layer_text(fontSize := 35)

enter image description here

关于r - 按第二个变量分组的 ggvis 并排条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553760/

相关文章:

从启动 R 返回两个值

r - 当geom_text不合适时如何在ggplot中放置百分比标签?

java - BarChart Item Click 如何在近处显示弹出菜单?

使用 ggvis 的 R markdown 返回错误 : could not find function "knit_print"

r - 如何在换行悬停标签上添加换行符

r - 如何在 data.table 中使用 cmd 删除坏行?

r - 将否定的逻辑值加在一起时的有趣结果

r - 如何避免 ggplot2 条形图中条形之间的间距不均匀?

加载包时 R session 中止

r - R 和 ggvis 中的命名颜色