【发布时间】:2012-06-12 22:17:01
【问题描述】:
gridExtra 包添加了一组“模式”类,可以让人们用模式填充矩形。例如,
library(gridExtra)
grid.pattern(pattern = 1)
创建一个用对角线填充的框。我想创建一堆面板,其中每个面板都用这些对角线填充。这很简单:
library(lattice); library(gridExtra)
examplePlot <- xyplot(
1 ~ 1 | 1:2,
panel = function () grid.pattern(pattern = 1),
layout = c(1, 2),
# Remove distracting visual detail
scales = list(x=list(draw=FALSE), y=list(draw=FALSE)),
strip = FALSE, xlab = '', ylab = ''
)
print(examplePlot)
问题是对角线没有跨面板对齐。也就是说,在第一个面板的底部与第二个面板的顶部相交的地方存在一个视觉“中断”:在这一点上,线条没有对齐。这是我要解决的问题。
我可以通过在grid.pattern 调用中添加参数pattern.offset = c(.2005, 0) 来消除大部分视觉中断,并确保它仅适用于底部面板。但是这个解决方案并不能一概而论。例如,如果我更改模式(例如,通过使用 granularity 参数到 grid.pattern),此解决方案将不起作用。有更通用的解决方法吗?
【问题讨论】:
-
如果不改变
patternGrob的(高度实验性的)实现,我认为没有一个简单的答案。您能否描述您问题的更一般背景 - 您要做什么?可能有一种更简单的方法可以做到这一点,而无需使用这个不可靠的功能。 -
感谢您的回复。真的,我要做的就是用图案填充面板,并确保图案在面板之间无缝排列。例如,请参阅下面响应中的图。