Ich versuche ein Png-Diagramm mit ggplot2 und ggsave (mit Cairo) in R zu erstellen. Ich habe ein Problem mit der Anpassung des Themas, um Ränder zu entfernen.Plot-Ränder entfernen in ggplot2
Derzeit verwenden ich:
... + theme(plot.margin=unit(c(0,0,0,0),"mm"))
Das für zwei von vier Seiten meiner Handlung zu funktionieren scheint, ist es die oberen und rechten Seitenrand vollständig entfernt, aber es gibt immer noch eine ziemlich große Marge auf der linken und unteren Seite. Gibt es eine Möglichkeit, diese vollständig zu entfernen? Bild unten zu veranschaulichen das Problem:
Wenn ein reproduzierbares Beispiel nützlich wäre, dann lassen Sie mich wissen und ich werde eine zusammen.
Edit:
library("ggplot2")
library("scales")
library("Cairo")
library("grid")
# Set chart values
line.width = 0.45
axis.font.size = 2.9
# Generate some random data
start.date <- as.Date("2011-07-01")
x.month <-seq.Date(start.date, by = "month", length.out = 24)
end.date <- max(x.month)
period.a <- rnorm(12, mean=50, sd=2)
period.b <- rnorm(12, mean=55, sd=2)
x.value <- c(period.a,period.b)
# Combine into dataframe
x.data <- data.frame(
"Month" = x.month,
"Value" = x.value
)
# Build chart
p <- ggplot(data=x.data, aes(Month, Value)) + geom_line(size=line.width)
p <- p + theme_bw()
p <- p + scale_y_continuous()
p <- p + scale_x_date(limits=c(start.date+20,end.date-20), breaks = "1 month",labels = date_format("%b-%y"))
p <- p + theme(axis.text.x=element_text(angle=90, hjust=1, vjust=0.5, size=axis.font.size),
axis.text.y=element_text(size=axis.font.size),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
plot.margin=unit(c(0,0,0,0),"mm"),
plot.background = element_rect(fill = "grey"),
panel.grid=element_blank(),
panel.border=element_rect(size=line.width/2),
axis.ticks=element_line(size=line.width/3),
axis.ticks.length=unit(0.3, "mm"),
axis.ticks.margin=unit(0.2, "mm"))
ggsave(file="c:\\temp\\test.png", plot=p, width=40, height=15, units="mm", type ="cairo-png")
Ja, oder '' xlab (NULL) '', um ein Etikett zu steuern. Der häufiger auftretende '' xlab ("") '', wie '' axis.title.x = element_blank() '', entfernt den Text, aber nicht das Leerzeichen, afaik. Und in der Tat bestätigt die Zeile 56, wenn sie dem Link des Baptisten folgt, dies: "if (is.null (labels $ x)) unit (0," lines ") else unit (0.5," lines ")" – PatrickT
dies kann auch sein Hilfe: http://stackoverflow.com/questions/22945651/how-to-remove-space-between-axis-area-plot-in-gplot2 –