1

我最近一直在处理一些相关数据,试图使其与 ggvis 交互:

areas_data %>%
ggvis(~Bacilli, ~Actinobacteria) %>%
layer_points(size := 50, opacity := 0.5, fill = ~area)

阴谋

我知道当我需要制作交互元素时,我应该映射列的名称。但是,当我想将交互式元素映射到单个列中的值时,我不确定该怎么做。我目前正在尝试为上图中的填充值制作一个复选框。我已经编写了代码的开头,但无法计算出将列的值映射到复选框的每个元素的函数。我想要获得的效果是我将能够以交互方式为我感兴趣的身体区域着色。我已经设法设置了复选框,但是将它链接到数据是我卡住的地方。

areas_data %>%
ggvis(~Bacilli, ~Actinobacteria) %>%
layer_points(size := 50, opacity := 0.5, fill := input_checkboxgroup(
choices = unique(areas_data$area),
label = "Select areas to colour",
map = function(val) {
# ?
}))
4

1 回答 1

1

您也许可以使用filterand select( ggvis/ dplyrpackages) 将选择限制为感兴趣列中的因素。当我新探索这些方法时,我可能会首先分解数据框(这对我来说现在更清楚了)。但我很肯定这可以在ggivs函数内完成。

areas_data <- filter(areas_data, Variable=="value" | Variable=="value")

然后丢弃未使用的级别并运行ggvis

areas_data <- droplevels(areas_data)
areas_data %>$
ggvis(~Bacilli, ~Actinobacteria) %>%
layer_points(size := 50, opacity := 0.5, fill := input_checkboxgroup(
choices = unique(areas_data$area),
label = "Select areas to colour",
map = function(val) {
# ?
}))
于 2014-08-22T12:36:07.277 回答