我创建了一些假数据来证明我的问题:
library(lattice)
library(RColorBrewer)
df <- data.frame(x = 1:50, y = 1:50, groups = rep(c(1:10), each = 5))
myColours <- brewer.pal(9, "YlOrRd")
my.settings <- list(superpose.symbol = list(col=myColours))
xyplot(y~x, data = df, groups = groups, cex = 1.5, par.settings = my.settings)
这会创建一个按组显示数据的图,我已经操纵了组的颜色方案。这都是花花公子。但我真正想做的是将该图中的某些数据点涂成黑色。所以我在foo中提取了一些数据点,
foo = df$x[c(3, 8, 11, 22, 25, 37)]
我想在参数设置中使用ifelse语句(缺少更好的解决方案),以便foo中的所有数据点都是黑色的,其他所有数据点都保持与上图中相同的颜色。
my.settings <- list(superpose.symbol= list(col=ifelse(df$x %in% foo,
"black", myColours)))
xyplot(y~x, data = df, groups = groups, cex = 1.5, par.settings = my.settings)
我应该说我制作假数据的能力很差,所以上面的情节不能按照我想要的方式做,但方式与我的实际数据不同。上面的图似乎选择了几个组并将它们全部绘制为黑色,而不仅仅是foo中的选择数据点,而在我的实际数据中,R只是忽略了ifelse语句并且根本没有改变任何数据点,它只是使用myColours调色板。
谢谢!