gpt4 book ai didi

r - 如何向使用格子制作的水平图添加线条(abline 不知何故不起作用)?

转载 作者:行者123 更新时间:2023-12-01 22:43:26 24 4
gpt4 key购买 nike

我想在我的水平图上绘制水平线和垂直线,对应于从 74 到 76 的 x 值和从 28 到 32 的 y 值。下面是我的 R 代码。但是当我运行以下命令时,我得到了水平图但没有线条。我也没有收到来自 R 的错误。我安装的默认主题是将值映射到粉红色和青色的东西。我也尝试过使用面板功能,但也没有成功。

levelplot(d_fire_count_nom ~ longitude + latitude | factor(day)+factor(year), 
data = asia,
subset = (month == 10), aspect="iso", contour = FALSE, layout=c(1,1),
main="If a fire occured in a region (low confidence) in October during 2001-2008",
scales=list(x=list(at=seq(from=60,to=98, by=1)),
y=list(at=seq(from=5,to=38,by=1)),cex=.7, alternating=3),
xlim=c(60, 98), ylim=c(5, 38),
abline=list(h=74:76, v=28:32, col="grey"))

最佳答案

lattice 图形不是这样工作的。事实上,如果你阅读 ?levelplot,你会发现那个名为 abline 的函数没有参数,所以我不确定你从哪里得到这个语法。

您可以通过更改panel 函数向lattice 图形添加内容。有许多 panel.* 函数可用于执行各种操作,例如绘制点、线、散点图平滑器等。在本例中,我们需要一个 panel.abline使用。所以我们定义了我们自己的panel函数。

这使用了 ?levelplot 中的第一个示例:

x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))
levelplot(z~x*y, grid,
panel = function(...){
panel.levelplot(...)
panel.abline(h = 2.5)
panel.abline(v = 2.5)
},
cuts = 50, scales=list(log="e"), xlab="",
ylab="", main="Weird Function", sub="with log scales",
colorkey = FALSE, region = TRUE)

我们的新面板函数需要先绘制水平图,所以我们先调用 panel.levelplot。然后我们想添加一些行,因此我们为此添加了 panel.abline

关于r - 如何向使用格子制作的水平图添加线条(abline 不知何故不起作用)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7622041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com