2015-10-21 7 views
5

इस छोटे डाटासेट का उपयोग करना:आर क्षैतिज स्टैक किया ggvis Barplot

df <- structure(list(colour = structure(c(1L, 2L, 1L, 2L), .Label = c("Black", 
"White"), class = "factor"), variable = c("A", "A", "B", "B"), 
    value = c(1, 2, 0.74, 0.85)), row.names = c(NA, -4L), .Names = c("colour", 
"variable", "value"), class = "data.frame") 

मैं आसानी से ggvis

library(ggvis) 
df %>% 
    ggvis(x=~variable, y=~value, fill=~colour) %>% 
    group_by(colour) %>% 
    layer_bars() 

enter image description here

लेकिन साथ एक खड़ी खड़ी barplot मैं समझ नहीं है करने के लिए कैसे बना सकते हैं एक क्षैतिज स्टैक्ड बारप्लॉट। मुझे लगता है कि मुझे किसी भी तरह layer_rects का उपयोग करना चाहिए, लेकिन अब तक का सबसे अच्छा मैं केवल एक समूह प्लॉट कर सकता था।

df %>% 
    ggvis(x =~value, y=~variable, fill =~ colour) %>% 
    group_by(colour) %>% 
    layer_rects(x2 = 0, height = band()) 

enter image description here

उत्तर

6

क्योंकि layer_bars() ढेर स्वचालित रूप से है यही कारण है, layer_rects() नहीं करता है। आपको compute_stack() का उपयोग करके ढेर के बारे में स्पष्ट होना चाहिए।

df %>% 
    ggvis(y = ~variable, fill = ~colour) %>% 
    compute_stack(stack_var = ~value, group_var = ~variable) %>% 
    layer_rects(x = ~stack_lwr_, x2 = ~stack_upr_, height = band()) 

कौन देता है:

enter image description here


नोट: इस कोड को देखते हुए, आप आश्चर्य हो सकता है जहां stack_lwr_ और stack_upr_ तर्कों से आते हैं। यह देखने के लिए source code पर एक नज़र डालें कि यह कैसे काम करता है

+1

उत्कृष्ट, बिल्कुल मुझे जो चाहिए था। धन्यवाद – cdeterman

संबंधित मुद्दे