我正在尝试使用分层方法来覆盖几个spatstat空间对象。所有这些对象都用于同一窗口。我有一个来自ppp的im
层(密度)。我想让这个图层有点透明,以便更好地了解分层对象中的其他对象。
如何控制此密度图(im)的透明度? plot.im是否有像alpha或透明度参数的东西?
更新:
library(spatstat)
pipes=simplenet
plot(pipes)
point_net = as.ppp(runifpoint(10, win = Window(pipes)))
point_surface = density(point_net)
plot(point_surface)
layers= layered(point_surface, point_net, pipes)
plot(layers)
在这里,我绘制了3层。正如您所看到的,密度图具有非常暗的蓝色和红色。是的,我可以使用不同的颜色绘制线条和点以使它们可见,但是做简单的堆积线,点图并为密度(im)图添加一点透明度会很好。
目的只是为了避免复杂的自定义绘图颜色并向同事解释。
谢谢。答案 0 :(得分:0)
首先是原帖的命令:
library(spatstat)
pipes=simplenet
point_net = as.ppp(runifpoint(10, win = Window(pipes)))
point_surface = density(point_net)
layers= layered(point_surface, point_net, pipes)
plot(layers)
您需要为plot.im
提供不同的颜色图。那里有两个
你可以这样做的方法:
add = TRUE
分别绘制每个图层以供后续使用
绘制im
对象时,图层并提供颜色贴图。layered
对象时,传递一个绘图参数列表
已创建以上。我发现第一个选项更容易说明,所以我会这样做
第一。 spatstat
的默认颜色图是第29个Kovesi颜色
序列(?Kovesi
了解有关这些序列的更多详细信息):
def_col <- Kovesi$values[[29]]
head(def_col)
#> [1] "#000C7D" "#000D7E" "#000D80" "#000E81" "#000E83" "#000E85"
要添加透明度,您可以选择使用to.transparent
fraction
更多/更少的透明度:
def_col_trans <- to.transparent(def_col, fraction = 0.7)
head(def_col_trans)
#> [1] "#000C7DB3" "#000D7EB3" "#000D80B3" "#000E81B3" "#000E83B3" "#000E85B3"
现在您只需要将其用作颜色图:
plot(point_surface, col = def_col_trans)
plot(point_net, add = TRUE)
plot(pipes, add = TRUE)
要使用layered
对象执行此操作,您必须创建一个绘图列表
参数列表(如果您没有其他参数,则包含NULL
参数):
layer_args <- list(list(col = def_col_trans),
list(NULL),
list(NULL))
plot(layers, plotargs = layer_args)