【发布时间】:2015-02-17 14:58:21
【问题描述】:
我正在做一个相当简单的 xyplot 点阵图,为了清楚起见,使用两个点和一条连接它们的线。但是,在我的一些面板中,数据很稀疏,我不想连接这些点。我希望能够指定哪些面板应该有一条线。我尝试过使用 par.settings 和 panel.superpose,但我一定遗漏了一些东西,因为没有什么能正常工作。当我尝试 panel.superpose 时,它似乎使我不在该语句中的所有其他图形设置无效。我找到了有关如何在一个面板中更改不同组的线型的答案,但我希望它们在面板之间有所不同,我很难过。
代码如下:
theme1 <-list(strip.background=list(col="gray75"))
myplot=xyplot(Average.of.response~bin|disttype,
groups=X_LEVEL_,
data=initbehav.disttype[order(initbehav.disttype$disttype),],
subset=initbehav=="Foraging",
par.settings = theme1,
ylab=list(label="Average Probability of Response Type",cex=1.1, fontface="bold"),
xlab=list(label="Distance to Disturbance Source (m)", cex=1.2, fontface="bold"),
key=list(text=list(
lab=as.character(unique(initbehav.disttype$X_LEVEL_)),
padding.text=10),
points=list(cex=1.5, pch=c(0,16,2,18), col="black"),
columns=4,
space="bottom"),
type=c("l","p"),
pch=c(0,16,2,18),
cex=1.4,
col="black",
scales=list(
x=list(rot=45, cex=0.9),
y=list(cex=1.1)
)
)
用示例数据编辑:
为了论证,如果这是我的代码:
group=(c("a","b","c"))
data=data.frame(
Y=runif(30,min=0, max=25),
X=rep(c("dog", "car", "person"), each=10),
Z=sample(group, 30, replace=T))
library(lattice)
xyplot(Y~X|Z,
data=data,
type=c("smooth","p"),
cex=1.4,
col="black",
scales=list(
x=list(rot=45, cex=0.9),
y=list(cex=1.1)
)
)
我想从“狗”面板中删除平滑线,同时保持其他所有内容不变,我将如何使用自定义面板功能来实现这一点?我还能保留我希望应用于自定义面板功能之外的每个面板的参数吗?
【问题讨论】:
-
在这里发布一些sample data 会有所帮助。如果我们无法运行您的功能,则很难帮助您修复它。在您的示例中明确说明您想要连接哪些面板,以及您不想连接哪些面板。你肯定需要一个自定义面板功能。
-
谢谢,我更新了简单的示例代码。
-
在您的示例中,您有用于 a、b 和 c 的面板,而不是用于狗的面板。您的意思是
Y~Z|X的公式吗?