1

我想在我的水平图上绘制水平线和垂直线,对应于从 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"))
4

1 回答 1

6

这不是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为此添加。

于 2011-10-01T23:56:51.790 回答