2016-08-06 29 views
1

Ich habe folgenden Code:entfernen Räume zwischen den Stäben in BarPlot 2 Faktoren

df=data.frame(time=as.factor(rep(0.5:9.5,each=10)),roi=rep(1:10,10),area=runif(1‌​00, 5.0, 7.5)) 

df$time <- factor(df$time, levels=rev(levels(df$time))) 

ggplot(data=df, aes(y=factor(roi), x=time, fill = area)) + theme_minimal() + coord_flip() + geom_tile(colour = "white", width = 0.9, height = 0.5) + scale_fill_gradient(low="blue",high="red") 

Wie ich die Räume zwischen den Stäben von 10 rois entfernen (ich die Räume zwischen rois bedeuten) und 10 Bars von 10 rois machen bleiben kontinuierlich für jeden Wert der Zeit. Vielen Dank für jede Hilfe.

Antwort

1
  • Anstelle der height und width Argumente geom_tile, coord_fixed(ratio=r) zu verwenden, um das Seitenverhältnis von die Fliesen zu steuern (wobei r das Verhältnis). Ich habe im folgenden Beispiel r = 0,5 verwendet.
  • Schalten Sie die x und y Spalten, so dass Sie roi auf der x-Achse erhalten, ohne coord_flip() zu benötigen (Sie beide nicht verwenden coord_flip() und coord_fixed() zugleich kann).
  • Setzen Sie colour=NA so, dass zwischen jeder Kachel innerhalb einer gegebenen Zeile kein Leerzeichen steht.
  • Legen Sie height=0.9 fest, um ein Leerzeichen zwischen den einzelnen Kacheln zu erstellen.

    ggplot(data=df, aes(x=factor(roi), y=time, fill = area)) + 
        theme_minimal() + 
        coord_fixed(ratio=0.5) + 
        geom_tile(colour = NA, width = 1, height = 0.9) + 
        scale_fill_gradient(low="blue",high="red") 
    

enter image description here

+0

Vielen Dank für Ihre Antwort. Basierend auf Ihrem Vorschlag habe ich den Weg gefunden, dass ich zufrieden bin. ggplot (data = df, aes (x = Faktor (ROI), y = Zeit, füllen = area)) + theme_minimal() + coord_fixed (Verhältnis = 2) + geom_tile (color = NA, Breite = 1 , height = 0.9) + scale_fill_gradient (niedrig = "blau", hoch = "rot") –

0

Nicht sicher, ob dies das ist, was Sie wollen, aber scheint, als ob Sie nur die height in geom_tile ändern könnten?

ggplot(data=df, aes(y=factor(roi), x=time, fill = area)) + 
    theme_minimal() + 
    coord_flip() + 
    geom_tile(colour = "white", width = 0.9, height = 1.3) + 
    scale_fill_gradient(low="blue",high="red") 

enter image description here

+0

Danke Weihuang Wong, aber ich möchte in 0,5 oder weniger die Höhe halten, als. Danke trotzdem deine Antwort. –