Is it possible to manipulate the spacing and size of dashed and dotted grid lines in ggplot using the themes? The following plot:
p + l + opts(panel.grid.major = theme_line(colour = 'black', linetype = 'dashed'),
panel.grid.minor = theme_line(colour = NA),
panel.background = theme_rect(colour = 'white'))
I'd like to change the spacing (such as in Illustrator) between dashed and dotted grid lines.
Additionally, does anyone know if the x-axis and y-axis grid lines can be manipulated separately? For instance, I want to turn off the x-axis grid lines in this example.
I have seen manipulation using vline and hline (Add a dotted vertical line on certain x-axis values using ggplot), but don't want to have to hard code that each time if possible.

You can use the power of lty. see Line Type Specification in ?par.
example:
qplot(1:5, 1:5) + opts(panel.grid.major = theme_line(linetype = "2925"))
As for the second question, at this time you cannot specify the v and h lines separately.
Here is a quick and dirty hack:
qplot(1:5, 1:5)
grid.edit("panel.grid.major.x.polyline", grep = TRUE, gp = gpar(lty = "5195"))
grid.edit("panel.grid.major.y.polyline", grep = TRUE, gp = gpar(lty = "33"))
Now that I understand what you're asking, I think maybe this demonstrates what you're looking for:
dat <- data.frame(x = 1:10, y = 1:10)
ggplot(dat,aes(x = x, y = y)) +
geom_point() +
scale_y_continuous(breaks = NA) +
opts(panel.grid.major = theme_line(linetype = c("28")))

The linetype specification is a little complicated. See ?par, the section on specifying line types for an explanation.
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