按第二个变量分组的 ggvis 并排条形图
ggvis side-by-side barchart grouped by second variable
我正在从 Excel 迁移到 ggvis 进行数据分析。对于具有两个变量的典型分组条形图,但是我很难 绘制 条形图并排而不是堆叠 .
以下数据有四个步骤 A、B、C、D,"ratio" 数据来自两个特征 cc、ca。我的尝试是并排绘制 cc 和 ca 特征的比率。但是,默认绘图会将两个数据堆叠在一起。检查 ggvis vignetts 是否有设置 stack =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 和 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)
我正在从 Excel 迁移到 ggvis 进行数据分析。对于具有两个变量的典型分组条形图,但是我很难 绘制 条形图并排而不是堆叠 .
以下数据有四个步骤 A、B、C、D,"ratio" 数据来自两个特征 cc、ca。我的尝试是并排绘制 cc 和 ca 特征的比率。但是,默认绘图会将两个数据堆叠在一起。检查 ggvis vignetts 是否有设置 stack =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 和 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)