如果选择自定义网格线,是否有办法对齐网格线? 默认情况下,panel.grid(h = -1,v = -1)完成工作,但我想根据轴刻度细化网格。将h和v设置为轴刻度的负长度并不总是有效。
更新:下面是一个例子。我想实现水平网格线匹配y轴刻度。目前缺少一半的水平网格线。
library(lattice)
G <- cut(trees$Girth, seq(8, 22, by = 3))
p <- xyplot(Height ~ Volume | G, data = trees,
scales = list(x = list(alternating = 3, at = seq(10, 60, by = 5)),
y = list(alternating = 3, at = seq(65, 85, by = 2.5))),
panel = function(x, y, ...){
panel.grid(v = -11, h = -9)
panel.xyplot(x, y, ...)})
print(p)
我目前得到的是:
答案 0 :(得分:3)
如果您希望在pretty
返回的地点以外的地方使用刻度线和网格线,请不要使用panel.grid
;而是使用panel.abline
和您的自定义at
序列。
library(lattice)
G <- cut(trees$Girth, seq(8, 22, by = 3))
x.at = 5*(2:12)
y.at = 2.5*(26:34)
p <- xyplot(Height ~ Volume | G, data = trees,
scales = list(x = list(alternating = 3, at = x.at),
y = list(alternating = 3, at = y.at)),
panel = function(x, y, ...){
panel.abline(v = x.at, h = y.at, col="lightgrey")
panel.xyplot(x, y, ...)})
print(p)
并且不要忘记将颜色设置为适当的颜色。
panel.grid
内部提到help(panel.grid)
的限制:
h,v
对于panel.abline,这些是数字向量,分别给出水平和垂直的位置 以原生坐标添加到绘图中的线条。对于panel.grid,这些通常指定水平和 要添加到绘图中的垂直参考线。或者,他们 可以是负数。 h = -1和v = -1用于制作网格 与轴标签对齐。 这并不总是有效;这一切 实际发生的是,使用pretty选择位置 也是在最常见的情况下如何选择标签位置 (但不是因为因子变量)。 h和v可以是负数 -1以外的数字,在这种情况下-h和-v(视情况而定)是 作为pretty的n参数提供。
(我强调的斜体)。
再皱一次
如果您已将转换应用于具有scale
列表的轴,则必须将相同的转换应用于您提供给at
的{{1}}向量 - 我不会&#39 ;我知道如何让它自动发生。