So entfernen Sie Platz zwischen Achse & Umgebung-Grundstück in ggplot2?
Habe ich Folgendes dataframe:
uniq <- structure(list(year = c(1986L, 1987L, 1991L, 1992L, 1993L, 1994L, 1995L, 1996L, 1997L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 1986L, 1987L, 1991L, 1992L, 1993L, 1994L, 1995L, 1996L, 1997L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 1986L, 1987L, 1991L, 1992L, 1993L, 1994L, 1995L, 1996L, 1997L, 1998L, 1999L, 2000L, 2001L, 2002L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L), uniq.loc = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("u.1", "u.2", "u.3"), class = "factor"), uniq.n = c(1, 1, 1, 2, 5, 4, 2, 16, 16, 10, 15, 14, 8, 12, 20, 11, 17, 30, 17, 21, 22, 19, 34, 44, 56, 11, 0, 0, 3, 3, 7, 17, 12, 21, 18, 10, 12, 9, 7, 11, 25, 14, 11, 17, 12, 24, 59, 17, 36, 50, 59, 12, 0, 0, 0, 1, 4, 6, 3, 3, 9, 3, 4, 2, 5, 2, 12, 6, 8, 8, 3, 2, 9, 5, 20, 7, 10, 8), uniq.p = c(100, 100, 25, 33.3, 31.2, 14.8, 11.8, 40, 37.2, 43.5, 48.4, 56, 40, 48, 35.1, 35.5, 47.2, 54.5, 53.1, 44.7, 24.4, 46.3, 37.8, 43.6, 44.8, 35.5, 0, 0, 75, 50, 43.8, 63, 70.6, 52.5, 41.9, 43.5, 38.7, 36, 35, 44, 43.9, 45.2, 30.6, 30.9, 37.5, 51.1, 65.6, 41.5, 40, 49.5, 47.2, 38.7, 0, 0, 0, 16.7, 25, 22.2, 17.6, 7.5, 20.9, 13, 12.9, 8, 25, 8, 21.1, 19.4, 22.2, 14.5, 9.4, 4.3, 10, 12.2, 22.2, 6.9, 8, 25.8)), .Names = c("year", "uniq.loc", "uniq.n", "uniq.p"), class = "data.frame", row.names = c(NA, -78L))
Wenn ich eine area-plot mit:
ggplot(data = uniq) +
geom_area(aes(x = year, y = uniq.p, fill = uniq.loc), stat = "identity", position = "stack") +
scale_x_continuous(limits=c(1986,2014)) +
scale_y_continuous(limits=c(0,101)) +
theme_bw()
Bekomme ich dieses Ergebnis:
Allerdings möchte ich entfernen, den Raum zwischen der Achse und der eigentliche plot. Wenn ich theme(panel.grid = element_blank(), panel.margin = unit(-0.8, "lines"))
bekomme ich die folgende Fehlermeldung:
Error in theme(panel.grid = element_blank(), panel.margin = unit(-0.8, : could not find function "unit"
Irgendwelche Vorschläge, wie dieses problem zu lösen?
Ich denke, man benötigt zum expliziten laden der raster-Paket für
Vielen Dank! Bekomme ich keine Fehlermeldung mehr. Ich löste das problem bereits in einem anderen Weg, aber das ist eine schöne Erinnerung für die Zukunft, wenn ich will, um Ränder festzulegen.
Dies wird manchmal bezeichnet als eine enge layout. Erwähnen das hier so, dass Suchmaschinen ihn abholen können.
unit
Vielen Dank! Bekomme ich keine Fehlermeldung mehr. Ich löste das problem bereits in einem anderen Weg, aber das ist eine schöne Erinnerung für die Zukunft, wenn ich will, um Ränder festzulegen.
Dies wird manchmal bezeichnet als eine enge layout. Erwähnen das hier so, dass Suchmaschinen ihn abholen können.
InformationsquelleAutor Jaap | 2014-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist das problem gelöst indem
expand=c(0,0)
zuscale_x_continuous
undscale_y_continuous
. Dies entfernt auch die Notwendigkeit für das hinzufügen derpanel.margin
parameter.Code:
Das Ergebnis:
InformationsquelleAutor Jaap
Als der
ggplot2-version 3
, es ist einexpand_scale()
Funktion, die übergeben werden können, um dieexpand=
argument können Sie angeben, verschiedene erweitern Sie die Werte für jede Seite der Waage.Außerdem können Sie wählen, ob Sie möchten, um die expansion zu einer absoluten Größe (verwenden Sie die
add=
- parameter) oder ein Prozentsatz der Größe des Grundstücks (Nutzung dermult=
parameter):InformationsquelleAutor divibisan
Andere option, mit der Produktion identische Ergebnisse, ist mit
coord_cartesian
statt kontinuierliche positions-Skalen (x & y):scales_x/y_continuous
teilen, wenn Sie möchten, geben Sie die Pausen ,etc.Ich mit an Bord nehmen Ihren Kommentar, und danke!
InformationsquelleAutor mpalanco