我想在水平图上绘制水平和垂直线,对应于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"))
答案 0 :(得分:5)
这不是lattice
图形工作的方式。事实上,如果您阅读?levelplot
,您会看到该函数没有参数abline
,所以我不确定您从哪里获得该语法。
通过更改lattice
功能,您可以向panel
图形添加内容。有许多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
。