gpt4 book ai didi

r - 向图像/轮廓图添加点画

转载 作者:行者123 更新时间:2023-12-04 00:52:59 26 4
gpt4 key购买 nike

有一些数据我想添加“点画”以显示它“重要”的地方,就像它们在 IPCC 图中所做的那样

http://www.ipcc.ch/graphics/ar4-wg1/jpg/fig-10-18.jpg

目前我真的很努力在 R 中尝试这样做。

如果我编写一些测试数据并绘制它:

data <- array(runif(12*6), dim=c(12,6) )
over <- ifelse(data > 0.5, 1, 0 )
image(1:12, 1:6, data)

我最终想做的是基于当前图像顶部的数组“over”过度绘制一些点。

有什么建议吗!?

最佳答案

使用?image的坐标定位机制来做[1]。

data(volcano)
m <- volcano
dimx <- nrow(m)
dimy <- ncol(m)

d1 <- list(x = seq(0, 1, length = dimx), y = seq(0, 1, length = dimy), z = m)

通过以这种方式构建的“图像”,您可以保持对象的结构,及其
坐标完好。您可以将多个矩阵收集到一个 3D 数组中或作为多个矩阵
元素,但你需要增加 image()为了解决这个问题,所以我保留了它们
这里分开。

复制数据以指定一个有趣的区域。
d2 <- d1
d2$z <- d2$z > 155

使用坐标来指定哪些单元格是有趣的。如果您有一个非常大的光栅,这会很昂贵,但它非常容易做到。
pts <- expand.grid(x = d2$x, y = d2$y)
pts$over <- as.vector(d2$z)

设置情节。
op <- par(mfcol = c(2, 1))
image(d1)

image(d1)
points(pts$x[pts$over], pts$y[pts$over], cex = 0.7)

par(op)

不要忘记修改点的绘图以获得不同的效果,特别是具有很多点的非常密集的网格将需要很长时间才能绘制所有这些小圆圈。 pch = "."是个不错的选择。

现在,你有一些真实的数据可以绘制在那个漂亮的投影上吗?有关一些选项,请参见此处的示例: http://spatial-analyst.net/wiki/index.php?title=Global_datasets

[1] R 具有用于更复杂地处理栅格数据的类,请参阅包 sp 和 raster
对于两种不同的方法。

关于r - 向图像/轮廓图添加点画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11736996/

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