Z - R 中多边形(shapefile)的值

2023-12-02

我的目标是在 R 中创建 3D 可视化。我有柏林市区 (Ortsteile) 的 shapefile,并希望将值(居民/平方公里)突出显示为 z 值。我已将 shapefile 实现到 R 中,并为密度值(“Einwohnerd”)着色,如下所示:

library(rgdal)
library(sp)

berlin=readOGR(dsn="C...etc.", layer="Ortsteile")

berlin@data

col <- rainbow(length(levels(berlin@data$Name)))
spplot(berlin, "Einwohnerd", col.regions=col, main="Ortsteil Berlins", sub="Datensatz der Stadt Berlin", lwd=.8, col="black")

如何将某个多边形(市区)引用到 z 值(居民/平方公里)以及如何突出显示该 z 值?

希望有人能解答! 最好的问候 SB

感谢您的回答,但我仍在寻找使用密度作为 z 值的最佳方法,以便我可以创建 3D 模型。我发现不可能使用形状的多边形,但可以光栅化多边形并使用矩阵进行不同的透视和旋转。

这是代码,但最终的 3D 可视化看起来不够清晰和良好。也许以另一种方式计算 z 值会更好,这样第一个值不会开始那么高,或者使用多边形的中心而不是在 z 方向上绘制一列:

library(rgdal)
library(sp)

setwd("C:\\...")
berlin=readOGR(dsn="C:\\...\\Ortsteile", layer="Ortsteile") 

col <- rainbow(length(levels(berlin@data$Name)))  
spplot(berlin, "Einwohnerd", col.regions=col, main="Ortsteil Berlins",                 
sub="Datensatz    der Stadt Berlin", lwd=.8, col="black")

library(raster)

raster <- raster(nrows=100, ncols=200, extent(berlin)) 

test <- rasterize(berlin, raster, field="Einwohnerd")

persp(test, theta = 40, phi = 40, col = "gold", border = NA, shade = 0.5)  

for(i in seq(0,90,10)){     
persp(test, theta = 40, phi = i, col = "gold", border = NA, shade = 0.5)
}

library(rgl)         
library(colorRamps)
mat <- matrix(test[], nrow=test@nrows, byrow=TRUE)
image(mat)
persp3d(z = mat, clab = "m")
persp3d(z = mat, col = rainbow(10),border = "black")
persp3d(z = mat, facets = FALSE, curtain = TRUE)

这就是你的想法吗?

library(ggplot2)
library(rgdal)           # for readOGR(...) and spTransform(...)
library(RColorBrewer)    # for brewer.pal(...)

setwd("<directory with shapefile>")
map <- readOGR(dsn=".",layer="Ortsteile")
map <- spTransform(map,CRS=CRS("+init=epsg:4839"))
map.data <- data.frame(id=rownames(map@data), map@data)
map.df   <- fortify(map)
map.df   <- merge(map.df,map.data,by="id")
ggplot(map.df, aes(x=long, y=lat, group=group))+
  geom_polygon(aes(fill=Einwohnerd))+
  geom_path(colour="grey")+
  scale_fill_gradientn(colours=rev(brewer.pal(10,"Spectral")))+
  theme(axis.text=element_blank())+
  labs(title="Berlin Ortsteile", x="", y="")+
  coord_fixed()

解释

这是一个很好的问题,因为它提供了一个非常基本的等值线地图的示例,使用ggplot in R.

Shapefiles 可以使用 R 读入readOGR(...),生产SpatialDataFrame对象。后者基本上有两个部分:polygons包含多边形边界坐标的部分,以及data包含 shapefile 中属性表信息的部分。这些可以分别引用为map@polygons and map@data.

上面的代码读取 shapefile 并将坐标转换为每股收益:4839。然后我们将多边形 ID(存储在行名中)添加到其他信息中map@data, 创造map.data。然后我们使用fortify(...)函数于ggplot将多边形转换为适合绘图的数据框(map.df)。该数据框有一列id这对应于id列于map.data。然后我们合并属性信息(map.data) into map.df基于id column.

ggplot 调用创建地图图层并渲染地图,如下所示:

ggplot:       set the default dataset to map.df; identify x- and y-axis columns
geom_polygon: identify column for fill (color of polygon)
geom_path:    polygon boundaries
theme:        turn off axis text
labs:         title, turn off x- and y-axis labels
coord_fixed:  ensures that the map is not distorted

注释scale_fill_gradientn(...):此函数通过插入提供的调色板来将颜色分配给填充值colours=范围。这里我们使用光谱调色板www.colorbrewer.org。不幸的是,这个调色板具有受尊崇的颜色(蓝色 - 红色),因此我们使用 rev(...) 来反转颜色顺序(高=红色,低=蓝色)。如果您喜欢 matlab 中常见的更高饱和度的颜色,请使用library(colorRamps)并将调用替换为scale_fill_gradientn(...) with:

  scale_fill_gradientn(colours=matlab.like(10))+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Z - R 中多边形(shapefile)的值 的相关文章

  • 如何从 data.frame 中删除列?

    不是 你怎么 但更多的是 你怎么 如果有人给你一个包含 200 列的文件 并且你想将其减少到分析所需的少数列 你会如何做呢 一种解决方案是否比另一种解决方案更有优势 假设我们有一个包含列 col1 col2 到 col200 的数据框 如果
  • 合并的 xts 对象未对齐

    请尝试以下代码 library quantmod getSymbols SPY from 1950 01 01 SPY lt to monthly SPY temp lt xts Cl SPY index SPY 您将获得一个xts具有相同
  • R 中的卡方拟合优度检验

    我有一个观察值向量 还有一个用模型计算的值向量 actual lt c 1411 439 214 100 62 38 29 64 expected lt c 1425 3 399 5 201 6 116 9 72 2 46 3 30 4 6
  • 事后如何使用保存的.rds h2o模型进行预测?

    我使用 mlr 和 h2o 包创建了一个 R 模型 如下所示 library h2o rfh20 lrn makeLearner classif h2o randomForest predict type prob 完成模型调整 模型启动
  • 单击 hPlot 图表中闪亮的数据点时打印组名称

    我有一个闪亮的应用程序 它使用 rCharts 中的 highcharts 库显示一些图表 在某些情况下 我在单个图表上有多个图表 这些图表是使用 hPlot 中的组选项创建的 我希望在单击图表时打印单个数据点的所有参数 x y 和组值 我
  • 在 R 中,如何获得某些向量值的所有可能组合?

    背景 我有一个需要一些参数的函数 我想要获得所有可能的参数组合的函数结果 一个简化的例子 f lt function x y return paste x y sep colors c red green blue days c Monda
  • 在 R data.table 中计算时间增量

    我有一个篮球运动员数据的数据表 其中包括每场比赛和多名球员的比赛日期 我想创建一个列来计算自上一场比赛以来的天数 我在 R 中使用 data table 包 PLAYERID GAME DATE 1 2989 2014 01 1 2 298
  • 如何使用“downloadHandler”在闪亮的可反应内部创建下载按钮?

    我创建downloadlinksa 的行内reactable 我这样做是为了DT datatable and a reactable reactable 我还创建了相应的output downloadHandler在 ids 上使用 app
  • R:从 Github 安装包时出现编码问题

    我正在尝试安装dcStockR https github com yutannihilation dcStockR来自 Github 的包 这是一个htmlwidgets http www htmlwidgets org 周围的包装纸dc
  • 如何通过在R闪亮循环中读取.csv文件来动态生成dataTableOutput?

    我有一个函数可以生成 n 个数据帧并将其作为 csv 文件保存在某个位置 并且该函数返回已保存 CSV 的文件名 我希望获取这些 csv 文件 使用以下命令读取它read csv 然后使用 renderUI 和 renderDataTabl
  • 在 Shiny 应用程序中更改 bsModal 的背景

    我正在开发一个 Shiny 应用程序 我需要确保最终用户不会意外关闭 bsModal 因为它上面有一些操作按钮 我做了一些研究并了解到我需要覆盖背景和键盘参数 但即使我看到了一些建议 我也不知道这到底需要放在我的代码中的哪里 我不精通 Ja
  • 闪亮的传单添加大量分离的折线

    我有一个 200k 行数据集 其中包含出发地和目的地的坐标 我有一个 R 闪亮的应用程序 带有传单地图 可以在这些坐标上显示圆圈 尽管坐标数量很大 但效果很好 这是数据的简化示例 每行包含出行id 出发地经纬度 目的地经纬度 id lat
  • 如何在 Shiny 应用程序中访问/打印/跟踪当前选项卡选择?

    我正在一个闪亮的应用程序中工作 我希望能够访问用户在会话中当前所在选项卡上的信息 我有一个观察事件 用于侦听要单击的特定按钮 简而言之 我想存储 打印用户单击此按钮时所在的当前选项卡 单击此按钮后 选项卡将更改为带有 updateTabIt
  • R 监督潜在狄利克雷分配包

    我在用着这个LDA包 https cran r project org web packages lda 对于 R 具体来说 我正在尝试做监督潜在狄利克雷分配 slda https www cs princeton edu blei pap
  • ggplot2中的两列分组

    是否可以按两列分组 于是叉积就画出来了 经过geom point and geom smooth 例如 frame lt data frame series lt rep c a b 6 sample lt rep c glass wate
  • R:适合显示具有倾斜计数的数据的图

    我有这样的数据 Name Count Object1 110 Object2 111 Object3 95 Object4 40 Object2000 1 因此 只有前 3 个物体的计数较高 其余 1996 个物体的数量少于 40 个 其中
  • 闪亮的仪表板侧边栏中的可折叠菜单项

    我的侧边栏中有两个菜单项 目前 如果我单击任何菜单项 则会显示所有菜单项的选项卡项 我想让它可折叠 如果我单击多个名称菜单 单个分析应该折叠 如果我单击单个分析 多个分析应该折叠 目前的设计是 相同的可重现代码是 library shiny
  • 如何在 R 中创建纯 ascii 表作为输出,类似于 MySQL 风格?

    我正在尝试为 R 找到一个输出的函数data frameMySQL 风格的 ascii 表中的对象如下 id var1 var2 1 asdf g 2 asdf h 3 asdf j 有这样的功能吗 至少有两个工具可以做到这一点 csvfi
  • 包什么时候需要为它自己的对象使用 :::

    考虑这个 R 包有两个函数 一个是导出函数 另一个是内部函数 hello R export hello lt function internalFunctions hello internal 你好 内部 R hello internal
  • 缩放geom_密度以将geom_bar与y上的百分比相匹配

    因为我对数学感到困惑上次我尝试问这个问题 https stackoverflow com questions 32412805 ggplot2 histogram with density curve that sums to 1 这是另一

随机推荐

  • VBA 中的哨兵对象

    我在网络上和我自己的项目中普遍看到具有以下模式的代码 Sub Func Application EnableEvents False some code Application EnableEvents True End Sub 自从有生以
  • 我自己的驱动程序是否需要 Windows 7 x64 中的数字签名

    我已经创建了驱动程序来在 Windows 7 x64 上挂接 ssdt 我怀疑是否需要对驱动程序进行数字签名才能在 x64 上以内核模式安装 否则我只需要 Windows 驱动套件即可安装它 除了 Windows Driver Kit WD
  • 获取维度长度,C# 数组

    int arr new int 2 5 var rows arr var cols arr Assert Equals 3 rows Assert Equals 6 cols 您可以使用GetLength some dimension st
  • 用于验证 IPv4 和 IPv6 地址(无主机名)的 JavaScript 正则表达式

    请建议一个可以验证的 JS 正则表达式 IPv4地址 IPv6地址 该正则表达式应该只验证地址而不验证主机名 我有完全相同的需要 所以我改编了正则表达式丹尼尔的精彩回答 这是我能找到的最准确的 不验证主机名 这里是 var expressi
  • Mongodb 带条件聚合查找

    我有一个名为article category其中存储所有article id属于以下类别category id像这样的数据格式 集合 1 article category article id 2015110920343902 all ca
  • Opencv cv::waitKey() 返回值

    我正在 Ubuntu 14 上调试一些使用 OpenCV 的 C 代码 已知该代码可以在 Ubuntu 12 上运行 也可能与其他 OpenCV 库构建一起运行 之前是什么 int key pressed waitKey 0 cout lt
  • getElementsByTagName() 相当于 textNodes

    有什么办法可以得到全部的集合吗textNode文档中的对象 getElementsByTagName 对于 Elements 来说效果很好 但是textNodes 不是元素 Update 我意识到这可以通过遍历 DOM 来完成 正如下面许多
  • 如何使用空手道功能文件中的 .js 文件中的参数调用 Javascript 函数

    可以说我在functions js 文件中创建了javascript 函数 function getReviews reviews var length reviews reviews length return length review
  • 从 Windows 7 中的 php 命令行脚本复制到剪贴板

    我有一个 php 5 5 脚本 我在 Windows 7 中从命令行运行该脚本 如下所示 C php 5 5 5 php exe C scripts putString php 我的问题是 是否可以将脚本中的内容复制到 Windows 剪贴
  • 使用 Guice Custom Scopes 和 Jersey 进行多租户

    我正在使用 Guice for DI 与 Jersey 开发多租户应用程序 我也使用 Dropwizard 但我认为这在这里并不重要 令我困扰的一件事是 某种tenancy id我的申请中到处都是 我的大多数网址如下所示 tenancy i
  • 合并两个具有复杂条件的 pandas 数据框

    我想合并两个数据框 让我们考虑以下两个 df df1 id A ts A course weight id1 2017 04 27 01 35 30 cotton 3 5 id1 2017 04 27 01 36 05 cotton 3 5
  • 如何在 Tomcat 的 web.xml 中映射欢迎文件的过滤器?

    我创建了一个Filter检查Cookies 与请求对象和forward相应的请求感谢this and this问题 现在我想映射这个Filter只是为了welcome file正如我在中声明的那样web xml 说我有welcome fil
  • 使用 Selenium 测试 AngularJS

    我在 ASP MVC AngularJS 堆栈上有一个 SPA 应用程序 我想测试 UI 现在我正在尝试 Selenium 与 PhantomJS 和 WebKit 驱动程序 这是一个示例测试页面 具有单个元素的视图 清单项目 li 从服务
  • http 文件访问和 php 会话

    如果站点有 php 会话来强制对站点上以 php 实现的页面进行身份验证 授权 那么相同的逻辑如何强制访问某些文件 假设目录中的文件存储库 因此 var www html 通过身份验证受到保护 但是 此 PHP 身份验证逻辑不会禁止用户简单
  • 关闭调试打印

    有时我有很多打印分散在函数周围来打印调试输出 为了切换这个调试输出 我想出了这个 def f debug False print builtins print if debug else lambda p None 或者 如果我需要打印除调
  • 为什么自动装箱会使 Java 中的某些调用变得不明确?

    今天我注意到自动装箱有时会导致方法重载解析中的歧义 最简单的例子似乎是这样的 public class Test static void f Object a boolean b static void f Object a Object
  • 在视图控制器之间传递数据/对象/moc - 最佳实践

    我有一个我怀疑很常见的场景 我发现了各种想法来回答其他类似的问题 包括设置 IBOutlet 将 NSmanagementobjects 作为属性传递以及仅使用一个视图控制器但交换视图 但我不确定这将是为我的解决方案实施的最佳想法 我有一个
  • 有什么原因我不能只使用 git 来跟踪 svn checkout 的更改吗?

    我已经习惯在我的一些家庭项目和工作项目中使用 git 来跟踪我在自己的文件夹中所做的更改 我想用它来跟踪我在 svn checkout 中对一组文件所做的更改 我已经阅读过有关 git svn 的内容 它似乎超出了我目前想要 需要的范围 我
  • 根据与其他 2 列相关的条件创建一列

    我在 pandas DataFrame 中有两列 我们称之为 col1 和 col2 两者都包含 True False 值 我需要从这两列 col3 创建第三列 如果两列中的一列或另一列在该记录中具有 True 值 则该记录将具有 True
  • Z - R 中多边形(shapefile)的值

    我的目标是在 R 中创建 3D 可视化 我有柏林市区 Ortsteile 的 shapefile 并希望将值 居民 平方公里 突出显示为 z 值 我已将 shapefile 实现到 R 中 并为密度值 Einwohnerd 着色 如下所示