2017-05-02 4 views
0

Ich habe den folgenden Code - der Datensatz ergibt 78 gestapelte Balken. Hat ggplot eine Möglichkeit zu brechen, sagen wir 8 Balken pro Graph? Ich könnte den Datenrahmen über eine Schleife aufbrechen, aber das scheint ziemlich ineffizient zu sein.ggplot mehrere gestapelte Balkendiagramme für große X-Achse-Datensatz

TTM <- read.csv("c:/temp/out.csv", header=TRUE) 

library(ggplot2) 

ggplot(data = TTM, aes(x = MTF, y = FTE, fill = Job)) +  
geom_bar(stat="identity") 
+3

Warum eine 'Group' Variable nicht erstellen und es dann Facette benutzen? –

Antwort

1

Da Sie keine Beispieldaten nicht vorsah, ich werde ein mtcars in Dataset gebaut verwenden. Wenn Sie meinen obigen Kommentar erweitern, können Sie eine neue Gruppenvariable mit der gewünschten Anzahl von Gruppen erstellen. Mit diesem können Sie 1 von 3 Dinge tun: (1) Facet_wrap, (2) grid.arrange, oder (3) neue Seiten

Datenaufbau:

group.len <- 8 
map <- data.frame(hp = unique(mtcars$hp), 
        new_group = rep(1:ceiling(length(unique(mtcars$hp))/group.len), each = group.len, 
            length.out = length(unique(mtcars$hp)))) 

df <- merge(mtcars, map) 

Facet Einschlag:

ggplot(data = df, aes(x = cyl, y = mpg, fill = as.factor(hp))) +  
    geom_bar(stat="identity") + facet_wrap(~new_group) 

enter image description here

Grid.arrange:

ich exakt den gleichen Ansatz wie in diesem Beitrag place a legend for each facet_wrap grid in ggplot2. Das Original war darum verschiedene Legenden für jede Facette, aber ich denke, es ist auch sehr für Ihr Problem:

library(gridExtra) 
out <- by(data = df, INDICES = df$new_group, FUN = function(m) { 
    m <- droplevels(m) 
    m <- ggplot(m, aes(as.factor(cyl), mpg, fill = as.factor(hp))) + 
    geom_bar(stat="identity") 
}) 
do.call(grid.arrange, out) 

enter image description here Neue Seiten:

Hinweis: dieser verwendet das out Objekt aus Gittern. vereinbaren Sie. Dadurch wird jede Handlung auf einer neuen Seite setzen (statt alle auf einer Seite wie in grid.arrange.

lapply(out, function(x) {x}) 
Verwandte Themen