Работа с темами в 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, раздел по указанию типов линий для объяснения.

Другие вопросы по тегам