[英]R: plotting title and abline for multiple plots generated with lapply
我正在使用lapply
生成多个图以从每个图的向量中检索数据。
问题:
abline
,但它只在最后一个绘制。数据:
perfs
是一个包含 3 个元素的向量,它的每个元素都包含绘图的主要数据。k
的值,该值之前已在向量ks = c(5,7,11)
我曾尝试向 lapply 添加参数。
lapply(perfs, function(perf) {plot(perf, main = paste0("Curva ROC", ks), col = "#42f4bf", lwd = 4)})
abline(a = 0, b = 1, lwd = 2, lty = 2)
实际的:
预期的:
abline
要为每个图获得正确的标题,您需要有一种方法将 perfs 的元素链接到 ks 的元素,这样您就可以为每个图选择所需的一个。
一种方法(也许是最简单的)是使用for
循环,而不是 lapply,并在plot
的main
参数中使用ks[i]
。 如果您更喜欢使用lapply
,那么我认为match
应该可以正常工作(如下面的代码所示),前提是perfs
每个元素都不同。
有一个abline
每个情节,你需要包括abline
你在调用函数中的一部分lapply
,让您运行部分并排情节。
lapply(perfs, function(perf) {
k <- ks[match(list(perf), perfs)] # Only need list() is perfs is a list
plot(perf, main = paste0("Curve ROC", k), col = "#42f4bf", lwd = 4)
abline(a = 0, b = 1, lwd = 2, lty = 2)
})
我正在使用 @hodgenovice 建议的 for 循环
我使用索引ind
来访问ks
向量中k
的值。 通过这种方式,我可以为每个图形绘制abline
并根据k
的值命名它们。
ks <-c(5, 7, 11) # the previously defined values of k
ind <- 1 # index used for accessing ks
for (perf in perfs){ # each perf in perfs contains data used in the plot
k <- ks[ind]
ind <- ind + 1
plot(perf, main = paste0("ROC Curve k = ", k), col = "#42f4bf", lwd = 4)
abline(a = 0, b = 1, lwd = 2, lty = 2)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.