4

是否可以使用主题在 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 进行操作(使用 ggplot在某些 x 轴值上添加虚线垂直线),但如果可能的话,不希望每次都对其进行硬编码。

虚线

4

2 回答 2

6

您可以使用lty. 请参阅中的线型规范?par

例子:

qplot(1:5, 1:5) + opts(panel.grid.major = theme_line(linetype = "2925"))

至于第二个问题,此时不能分别指定 v 和 h 行。
这是一个快速而肮脏的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"))
于 2011-09-19T01:01:49.977 回答
3

现在我明白你在问什么,我想这可能证明了你在寻找什么:

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有关指定线型的部分以获取说明。

于 2011-09-19T01:04:07.423 回答