I am trying to make a plot with no information beyond the data. No axes; no grid; no title; just the plot.
But I keep getting extra margins and padding that I can't remove.
library(ggplot2) library(grid) theme_bare <- theme( axis.line = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank(), #axis.ticks.length = unit(0, "lines"), # Error axis.ticks.margin = unit(c(0,0,0,0), "lines"), legend.position = "none", panel.background = element_rect(fill = "gray"), panel.border = element_blank(), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.margin = unit(c(0,0,0,0), "lines"), plot.background = element_rect(fill = "blue"), plot.margin = unit(c(0,0,0,0), "lines") ) ggplot() + geom_area (data=economics, aes(x = date, y = unemploy), linetype=0) + theme_bare
Produces this image:
What I want is this:
I can't figure out how to get rid of the blue and make the dark gray flush with the edges.
Could any one offer some advice?
Assigning panel. background with element_blank() function will remove both grid and the background. Program: R.
As noted above, ggplot2 has a default theme, which is theme_gray() . This theme produces the familiar gray-background-white-grid-lines plot.
theme_classic() A classic-looking theme, with x and y axis lines and no gridlines. theme_void() A completely empty theme.
theme_bw: A theme with white background and black gridlines.
Here is the way to plot only the panel region:
p <- ggplot() + geom_area (data=economics, aes(x = date, y = unemploy), linetype=0) + scale_x_date(expand = c(0,0)) + scale_y_continuous(expand = c(0,0)) + theme(line = element_blank(), text = element_blank(), title = element_blank()) gt <- ggplot_gtable(ggplot_build(p)) ge <- subset(gt$layout, name == "panel") grid.draw(gt[ge$t:ge$b, ge$l:ge$r])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With