[英]ggvis graphic with group selection
我想使用ggvis進行數據探索(因為我對ggplot2很熟悉),並且由於我的數據集中有很多組,因此能夠選擇和取消選擇組以進行不同的特定(數據)比較會很有幫助。
set.seed(10)
dat <- data.frame(x=c(1:3,1:3),y=rnorm(6),groups=factor(rep(1:2,each=3)))
library(ggvis)
dat %>% ggvis(~x, ~y) %>% layer_points(fill=~groups)
# i know this example does not work - but is that possible somehow?
dat %>% ggvis(~x, ~y) %>% layer_points(fill=input_checkbox(~groups))
最后,我想要的是一個圖形,通過該圖形可以使用單選按鈕(例如)選擇一組子集。 有什么辦法嗎? 謝謝!
從文檔中
限制
當前,交互式輸入只能在兩個地方使用:
作為轉換的參數:
layer_smooths(span = input_slider(0, 1))
作為屬性:
props(size = input_slider(10, 1000))
這意味着交互式輸入只能修改數據,而不能修改基礎繪圖規范 。 換句話說, 僅憑基本交互性,就無法添加或刪除圖層或在不同數據集之間切換。 這是一個合理的限制,因為如果您要進行探索,則始終可以使用R代碼創建新的ggvis,或者如果要拋光顯示的圖,則可以將其嵌入Shiny應用程序中並獲得對該圖的完全控制權。
為了進行簡單的數據探索,一種想法是使用filter()
:
set.seed(10)
dat <- data.frame(x = c(1:5,1:5,1:5),
y = rnorm(15), groups = factor(rep(1:5,each=3)))
注意 :我編輯了您的初始數據集以說明更多組的概念
library(dplyr)
library(ggvis)
dat %>% ggvis(~x, ~y) %>% layer_points(fill = ~groups)
您可以將參數(直接在R代碼中手動或在Shiny應用程序中使用單選按鈕)傳遞給filter()
來隔離特定的組:
dat %>%
filter(groups == 1 | groups == 3) %>%
ggvis(~x, ~y) %>% layer_points(fill = ~groups)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.