Utilizzo di ggplot2 Sto creando un istogramma con un fattore sull'asse orizzontale e un altro fattore per il colore di riempimento, utilizzando una posizione schivata. Il mio problema è che il fattore di riempimento a volte prende solo un valore per un valore del fattore orizzontale e, senza nulla da schivare, la barra occupa l'intera larghezza. C'è un modo per evitare di schivare nulla in modo che tutte le larghezze delle barre siano le stesse? O in modo equivalente per tracciare gli 0?Un modo per evitare sempre un istogramma?
Per esempio
ggplot(data = mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_histogram(position = "dodge")
This answer ha un paio di idee. È stato anche chiesto prima che venisse rilasciata la nuova versione, quindi forse qualcosa è cambiato? Usando le faccette (anche mostrato here) non mi piace per la mia situazione, anche se suppongo che la modifica dei dati e l'utilizzo di geom_bar
potrebbero funzionare, ma non è elegante. Inoltre, quando provai sfaccettatura comunque
ggplot(mtcars, aes(x = factor(carb), fill = factor(gear))) +
geom_bar() + facet_grid(~factor(carb))
ottengo l'errore "Errore nei layout_base (dati, cols, goccia = goccia): almeno uno strato deve contenere tutte le variabili usate per sfaccettatura"
I che potrei generare una trama di dati di conteggi e quindi utilizzare geom_bar
,
mtcounts <- ddply(subset(mtcars, select = c("carb", "gear")),
.fun = count, .variables = c("carb", "gear"))
compilando i livelli che non sono presenti con 0 di. Qualcuno sa se funzionerebbe o se c'è un modo migliore?
So che non si considera l'ideale, ma penso che pre-calcolare i conteggi e l'utilizzo di geom_bar sarebbe il mio modo preferito di fare questo. – joran