2015-02-17 16 views
5
thứ hai

Tôi đang ở quá trình di chuyển từ Excel để ggvis để phân tích dữ liệu. Đối với một biểu đồ thanh nhóm điển hình với hai biến, tuy nhiên tôi gặp khó khăn để cốt truyệnbiểu đồ thanh side-by-side thay vì xếp chồng lên nhau.ggvis side-by-side barchart nhóm lại theo biến

Dữ liệu sau có bốn bước A, B, C, D với dữ liệu "tỷ lệ" từ hai tính năng cc, ca. Nỗ lực của tôi là vẽ tỷ lệ từ cc và ca tính năng song song. Tuy nhiên, cốt truyện mặc định với ngăn xếp hai dữ liệu với nhau. Kiểm tra ggvis vignetts có một tùy chọn để thiết lập stack = FALSE. Nhưng nó sẽ chồng chéo lên tính năng khác.

Có tùy chọn nào trong ggvis để thực hiện những việc như "geom_bar (position =" dodge ")" trong ggplot không?

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() 

Trả lời

2

Tôi chưa thấy cách dễ dàng để thực hiện việc này. Tuy nhiên, một công trình xung quanh là xác định một cách rõ ràng trục x của bạn như là một sự kết hợp của x và điền đầy đủ các biến:

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) 

Không hoàn toàn thỏa đáng - bạn muốn kiểm soát khoảng cách giữa các thanh, và có thể thay đổi các nhãn - nhưng đi đúng hướng. Dù sao tôi cũng không thích những mảnh đất này, tôi thấy chúng rất khó hiểu, mặc dù chúng là một trong những âm mưu phổ biến nhất xung quanh.
enter image description here

Tôi biết nó không phải là những gì bạn hỏi, và phải mất một số người dùng một thời gian để làm quen với họ, nhưng tôi rất thích một biểu đồ phân tán với loại dữ liệu này:

library(tidyr) 
shrink %>% 
    spread(feature, ratio) %>% 
    ggvis(x = ~ca, y = ~cc, text := ~steps) %>% 
    layer_text(fontSize := 35) 

enter image description here

+0

Cảm ơn Peter về công việc xung quanh mã. Nó là một trong những biểu đồ Bar phổ biến nhất mà tôi muốn ggvis sẽ có một tùy chọn sau này. – Rick

+1

Mọi cập nhật cho câu trả lời này? Tính năng này vẫn không khả dụng? – Dambo

+0

Tôi muốn câu hỏi thứ hai. Tôi đã tìm kiếm tài liệu, nhưng không thể tìm thấy bất kỳ cập nhật nào. Tôi không đồng ý họ đang bối rối, nhưng "lô phổ biến nhất xung quanh" có xu hướng để có được yêu cầu nhiều nhất, quá (buồn bã). –