2015-02-17 13 views
5

Sono in corso la migrazione da Excel a ggvis per l'analisi dei dati. Per un grafico a barre raggruppato tipico con due variabili, tuttavia ho difficoltà a graficografico a barre affiancato anziché impilato.ggvis grafico side-by-side raggruppato dalla seconda variabile

I seguenti dati hanno quattro passi A, B, C, D con dati "ratio" da due caratteristiche cc, ca. Il mio tentativo è di tracciare il rapporto tra le caratteristiche cc e ca side-by-side. Tuttavia, la trama di default con stack i due dati insieme. Controlla ggvis vignetts ha un'opzione per impostare stack = FALSE. Ma si sovrapporrebbe all'altra caratteristica.

C'è un'opzione in ggvis per fare cose come "geom_bar (position =" dodge ")" in ggplot?

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

risposta

2

Non vedo un modo semplice per farlo ancora. Ma un modo per aggirare è quello di definire in modo esplicito il tuo asse x come una combinazione dei vostri x e riempire le variabili:

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

del tutto soddisfacente - che ci si vuole controllare gli spazi tra le sbarre, e forse modificare le etichette - ma nella giusta direzione. Comunque non mi piacciono molto questi intrecci, li trovo visivamente confusi, anche se sono uno degli intrecci più comuni in circolazione.
enter image description here

io so che non è quello che hai chiesto, e ci vuole alcuni utenti un tempo per abituarsi a loro, ma io preferisco di gran lunga un grafico a dispersione con questo tipo di dati:

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

enter image description here

+0

Grazie Peter per il lavoro sui codici. È uno dei più comuni grafici a barre che vorrei che ggvis avrebbe avuto un'opzione in seguito. – Rick

+1

Eventuali aggiornamenti a questa risposta? La funzione non è ancora disponibile? – Dambo

+0

La seconda domanda. Ho cercato la documentazione, ma non sono stato in grado di trovare alcun aggiornamento. Non sono d'accordo, sono confusi, ma "le trame più comuni" tendono a essere richieste anche di più (purtroppo). –

Problemi correlati