Работа с темами в ggplot2: изменение линий сетки x и y
Можно ли манипулировать расстоянием и размером пунктирных и пунктирных линий сетки в ggplot, используя темы? Следующий сюжет:
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'))
Я хотел бы изменить расстояние (например, в Illustrator) между пунктирными и пунктирными линиями сетки.
Кроме того, кто-нибудь знает, можно ли управлять линиями сетки по осям X и Y отдельно? Например, я хочу отключить линии сетки по оси X в этом примере.
Я видел манипуляции с использованием vline и hline ( добавьте пунктирную вертикальную линию на определенных значениях оси x, используя ggplot), но не хочу каждый раз по возможности писать жесткий код.
2 ответа
Вы можете использовать силу lty
, см. спецификацию типа линии в ?par
,
пример:
qplot(1:5, 1:5) + opts(panel.grid.major = theme_line(linetype = "2925"))
Что касается второго вопроса, в настоящее время вы не можете указать строки v и h отдельно.
Вот быстрый и грязный хак:
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"))
Теперь, когда я понимаю, что вы спрашиваете, я думаю, что, возможно, это демонстрирует то, что вы ищете:
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")))
Спецификация типа линии немного сложна. Увидеть ?par
, раздел по указанию типов линий для объяснения.