Работа с темами в ggplot2: изменение линий сетки x и y - PullRequest
4 голосов
/ 19 сентября 2011

Можно ли манипулировать расстоянием и размером пунктирных и пунктирных линий сетки в 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 ), но я не хочу каждый раз, когда это возможно, жестко кодировать.

dashed line

Ответы [ 2 ]

6 голосов
/ 19 сентября 2011

Вы можете использовать мощность lty. см. Спецификация типа линии in ?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"))
3 голосов
/ 19 сентября 2011

Теперь, когда я понимаю, что вы спрашиваете, я думаю, может быть, это демонстрирует то, что вы ищете:

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")))

enter image description here

Спецификация типа линии немного сложна,См. ?par, раздел по указанию типов линий для объяснения.

...