2014-04-08 7 views
5

Ich benutze ggplot2, um einige einfache Figuren mit einer Reihe von Koordinaten zu machen, um Rechtecke entlang der x-Achse zu erstellen. Ich kann jedoch nicht herausfinden, wie die Auffüllung zwischen dem tatsächlichen Beginn des Plots (Position x = 1) und der äußersten linken Kante des Plots (0,0) entfernt werden soll. Zum Beispiel verwende ich den folgenden Code:Wie kann ich den Abstand zwischen meinem Plot und der Achse in ggplot2-Figuren entfernen?

library(ggplot2) 
library(grid) 
png(filename="sample.png", width=5600, height=70) 
plot.data <- data.frame(start.points=c(1),end.points=c(10)) 
p <- ggplot(plot.data) 
p + geom_rect(aes(xmin=start.points, xmax=end.points, ymin=0, ymax=1), fill="red") + theme_bw() + ylab(paste(sprintf("%60s", ""), "\nSample_label\n")) + theme(axis.title.y = element_text(size = 30, colour = "black", angle = 0)) 
dev.off() 

Die Variablen my_start und my_stop sind nur Listen von Start- und Stopp-Koordinaten für Rechtecke zeichnen. Also, diese Handlung erstellt eine lange horizontale Figur, genau wie ich will.

Das Problem ist, sieht das Bild wie folgt aus:

axis_label | <-- white space --> <-----actual plot------> <-- white space--> | 

Actual Grundstück: enter image description here

... und ich möchte diese Menge an white space manuell steuern. Ich habe versucht, plot.margin und panel.margin zu setzen, aber diese scheinen andere Aspekte der Handlung zu kontrollieren. Bitte beachten Sie, dass das Rot bei meinem Beispielbild wie erwartet am Punkt 1 beginnt. Ich möchte, dass dies die y-Achse begrenzt, und ich möchte kein nachstehendes Leerzeichen nach dem Ende des roten Balkens.

Jede Hilfe würde sehr geschätzt werden! Idealerweise würde ich einfach alle Leerraumpolster entfernen. Vielen Dank!

+2

Dieses Problem ist nicht [REPRODUZIERBAR] (http://Stackoverflow.com/help/mcve), da es keine Daten enthält. Beachten Sie auch, dass Sie Bilder hochladen können. Thant könnte ein besserer Weg sein, dieses Thema zu diskutieren als der reine Textansatz. –

+1

Ich habe einen einzelnen Datenpunkt hinzugefügt, sodass jetzt alle Daten zur Reproduktion des Problems enthalten sind. Ich habe auch einen Png der tatsächlichen Handlung hinzugefügt, um mein Problem genauer zu veranschaulichen. Bitte beraten! – jake9115

Antwort

10

Versuchen Sie hinzuzufügen, um scale_x_continuous(expand = c(0, 0)) zu Ihrem Grundstückscode hinzuzufügen. Vom :

erweitern: ein numerischen Vektor der Länge zwei, eine multiplikative und additive Konstante geben verwendet, um den Bereich der Skalen zu erweitern, so dass es eine kleine Lücke zwischen den Daten und den Achsen ist.

ggplot(plot.data) + 
    geom_rect(aes(xmin = start.points, xmax = end.points, ymin = 0, ymax = 1), fill = "red") + 
    scale_x_continuous(expand = c(0, 0)) 
Verwandte Themen