Próbuję utworzyć wykres png przy użyciu ggplot2 i ggsave (z Cairo) w R. Mam problem z dostosowywaniem motywu w celu usunięcia marginesów.Usuń marginesy wydruku w ggplot2
Obecnie używam:
... + theme(plot.margin=unit(c(0,0,0,0),"mm"))
To wydaje się działać na dwóch z czterech boków mojej działce, usuwa górny i boczny prawy margines całkowicie, ale wciąż jest dość duży margines po lewej i po dolnej stronie. Czy istnieje sposób, aby całkowicie je usunąć? Obrazek poniżej w celu zilustrowania problemu:
Jeśli powtarzalne Przykładem może być przydatna pozwól mi znać, a ja umieścić jeden razem.
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")
Tak, lub '' xlab (NULL) '' do sterowania jedną etykietą. Częściej spotykane '' xlab ("") '', jak '' axis.title.x = element_blank() '', usuwa tekst, ale nie przestrzeń, afaik. I rzeczywiście, śledząc link baptiste, linia 56 potwierdza to: '' if (is.null (labels $ x)) unit (0, "lines") else unit (0.5, "lines") '' – PatrickT
może to również pomoc: http://stackoverflow.com/questions/22945651/how-to-remove-space-between-axis-area-plot-in-ggplot2 –