R实现地图相关图形绘制

      大家好,我是带我去滑雪!

      地图相关图形绘制具有许多优点,这些优点使其在各种领域和应用中非常有用。例如:地图相关图形提供了一种直观的方式来可视化数据,使数据更容易理解和分析。通过地图,可以看到数据的空间分布,识别趋势和模式,并从中获取有关地理位置的见解。下面使用R语言绘制地图相关图。

(1)数据

       使用美国50个州2005年的收入分配不均等指数,其中的6个收入不均等指数,除了泰尔熵指数之外,均介于0到1之间,数值越大代表收入分配越不均匀。详细数据在文末。

(2)收入不均等指数数据整理与点状图绘制

library(lattice)
ineq50=read.csv("ineq50.csv", header=F)
names(ineq50)=c("ATKIN05","GINI","RMEANDEV","THEIL","TOP1","TOP10")
save(ineq50, file="ineq50.RData")
load("ineq50.RData")
attach(ineq50)
vn=colnames(ineq50)
j=2   
index=ineq50[,vn[j]]
data=data.frame(name = state.name,region = state.region,y=index)
name=state.name
region=state.region
dotplot(reorder(name, index)~index, ineq50, main=c("Inequality Index"),xlab=vn[j])

输出结果:

        通过图像可以发现,康涅狄格州的收入分配最不平均,西弗吉尼亚州则最好。

(3)实现切段绘图

b=0.9 # Define cutting point
cuts =shingle(index,intervals = rbind(c(0, b),c(b, 2)))
dotplot(reorder(name, index) ~ index| cuts , ineq50,
        strip = FALSE, layout = c(2, 1), levels.fos = 1:50,
        scales = list(x = "free"), between = list(x = 0.5),
        xlab = "Theil income inequality index", 
        par.settings = list(layout.widths = list(panel = c(2, 1))))

输出结果:

(4)按地理区域呈现收入不均等指数数据

ineq50$region=with(ineq50, reorder(region, index, median))
ineq50$name=with(ineq50,reorder(reorder(name, index), as.numeric(region)))

dotplot(name~ index | region, ineq50, strip = F, strip.left = T, layout = c(1, 4),
        scales = list(y = list(relation = "free")),xlab = vn[j])

输出结果:

(5)在美国地图上呈现收入不均等指数

state.info = data.frame(name = state.name,long = state.center$x,lat = state.center$y,y=index)
library(maps)
state.map = map("state", plot=FALSE, fill = FALSE)
panel.3dmap = function(..., rot.mat, distance, xlim, ylim, zlim,
                       xlim.scaled, ylim.scaled, zlim.scaled)
{
  scaled.val = function(x, original, scaled) {
    scaled[1] + (x - original[1]) * diff(scaled) / diff(original)
  }
  m = ltransform3dto3d(rbind(scaled.val(state.map$x, xlim, xlim.scaled),
                             scaled.val(state.map$y, ylim, ylim.scaled),zlim.scaled[1]), 
                       rot.mat, distance)
  panel.lines(m[1,], m[2,], col = "grey76")
}

cloud(index ~ long + lat, state.info,
      subset = !(name %in% c("Alaska", "Hawaii")),
      panel.3d.cloud = function(...) {
        panel.3dmap(...)
        panel.3dscatter(...)
      }, 
      type = "h", scales = list(draw = FALSE), zoom = 1.2,xlim = state.map$range[1:2], 
      ylim = state.map$range[3:4],xlab = NULL, ylab = NULL, zlab = NULL,
      aspect = c(diff(state.map$range[3:4])/diff(state.map$range[1:2]), 0.3),
      panel.aspect = 0.75, lwd = 2, screen = list(z = 30, x = -70),
      par.settings = list(axis.line = list(col = "transparent"),
                          box.3d = list(col = "transparent", alpha = 0)))

输出结果:

         可以发现,收入分配不均匀的州多集中在美国的东部和西部。

需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/1E59qYZuGhwlrx6gn4JJZTg?pwd=2138
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/152697.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云域名免费配置HTTPS

阿里云域名配置HTTPS - 知乎

Vue3实现div拖拽改变宽高

效果图如下&#xff1a; 底部拖拽按钮点击拖拽可自定义父容器的宽高 <template><div id"business_plane"><div class"business_plane" ref"container"><div class"darg_tool"><el-icon class"drag_H…

Flink---13、容错机制(检查点(保存、恢复、算法、配置)、状态一致性、端到端精确一次)

星光下的赶路人star的个人主页 大鹏一日同风起&#xff0c;扶摇直上九万里 文章目录 1、容错机制1.1 检查点&#xff08;CheckPoint&#xff09;1.1.1 检查点的保存1.1.2 从检查点恢复状态1.1.3 检查点算法1.1.3.1 检查点分界线&#xff08;barrier&#xff09;1.1.3.2 分布式快…

vue3 + typescript + vite + naive ui + tailwindcss + jsx 仿苹果桌面系统

基于 vue3.x typescript vite naive ui tailwindcss jsx vue-router pinia&#xff0c;项目使用 tsx 作为模版输出&#xff0c;全程没有使用vue提供的SFC&#xff0c; 仿macos桌面前端项目&#xff0c;开源免费模版&#xff0c;希望减少工作量和学习新技术&#xff0c;希…

Android Studio编写xml布局不提示控件的部分属性问题的解决

最近突然发现Android Studio编写xml&#xff0c;发现有一部分控件的属性没有了代码提示&#xff0c;主要体现为id,margin等属性不再有代码提示&#xff0c;如下图。 但是手动输入仍然有效。然后删掉Android Sdk重新回来还是发现有问题&#xff0c;导一个之前的旧项目进来&#…

聊聊JDK19特性之虚拟线程 | 京东云技术团队

1.前言 在读《深入理解JVM虚拟机》这本书前两章的时候整理了JDK从1.0到最新版本发展史&#xff0c;其中记录了JDK这么多年来演进过程中的一些趣闻及引人注目的一些特性&#xff0c;在调研JDK19新增特性的时候了解到了虚拟线程这个概念&#xff0c;于是对虚拟线程进行学习整理内…

【单片机】17-温度传感器DS18B20

1.DS18B20相关背景知识 1.温度传感器 &#xff08;1&#xff09;测温度的方式&#xff1a;物理&#xff08;汞柱&#xff0c;气压&#xff09;&#xff0c;电子&#xff08;金属电性能随温度变化&#xff09; &#xff08;2&#xff09;早期&#xff1a;热敏电阻&#xff08;模…

零基础快速自学SQL,2天足矣。

此文是《10周入门数据分析》系列的第6篇。 想了解学习路线&#xff0c;可以先行阅读“ 学习计划 | 10周入门数据分析 ” 上一篇分享了数据库的基础知识&#xff0c;以及如何安装数据库&#xff0c;今天这篇分享数据库操作和SQL。 SQL全称是 Structured Query Language&#x…

聊聊僵尸进程

文章目录 1. 前言1.1 什么是僵尸进程1.2 为什么需要关注僵尸进程 2. 僵尸进程的产生2.2 为什么会产生僵尸进程2.3 举个栗子 3. 僵尸进程的影响3.1 僵尸进程为何会占用系统资源3.2 操作系统如何知道哪个资源需要被释放3.3 什么是进程表3.4 什么是PCB 5. 如何处理僵尸进程4.1 识别…

ViewPager、RecycleView实现轮播图

1.ViewPager实现轮播图形效果。 1&#xff09;layout中&#xff0c;PageIndicatorView轮播的View <RelativeLayoutandroid:layout_width"match_parent"android:layout_height"200dp"android:orientation"vertical"><androidx.viewpager…

【19】c++设计模式——>桥接模式

桥接模式的定义 C的桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它将抽象部分与实现部分分离&#xff0c;使得它们可以独立地变化。桥接模式的核心思想是利用组合关系代替继承关系&#xff0c;将系统划分成多个独立的、功能不同的类层次结…

TypeScript 笔记:String 字符串

1 对象属性 length 返回字符串的长度 2 对象方法 charAt() 返回在指定位置的字符 charCodeAt() 返回在指定的位置的字符的 Unicode 编码 concat 连接两个或更多的字符串 indexOf 返回某个指定的字符串值在字符串中首次出现的位置 lastIndexOf 从后向前搜索字符串&…

ctfshow-web5(md5弱比较)

打开题目链接是html和php代码 html没啥有用信息&#xff0c;这里审一下php代码 &#xff1a; 要求使用get方式传入两个参数 v1&#xff0c;v2 ctype_alpha()函数&#xff1a;用于检查给定的字符串是否仅包含字母&#xff1b; is_numeric()函数&#xff1a;检测字符串是否只由…

VC6 MFC Dialog as apllication 编程

MFC框架虽然古老&#xff0c;但编程还是方便多了&#xff0c;在操控界面控件的基础上&#xff0c;平时在Console模式习练的类可以融入到MFC中&#xff0c;开发应用程序还是比较方便的。下图是习练程序的界面。 说明&#xff1a; 一个EDIT框&#xff0c;一个Label框&#xff1b…

【python海洋专题十四】读取多个盐度nc数据画盐度季节变化图

本期内容 读取多个盐度文件&#xff1b;拼接数据在画盐度的季节分布图Part01. 使用数据 IAP 网格盐度数据集 数据详细介绍&#xff1a; 见文件附件&#xff1a; pages/file/dl?fid378649712527544320 全球温盐格点数据.pdf IAP_Global_ocean_gridded_product.pdf 全球温…

第三课-软件升级-Stable Diffusion教程

前言: 虽然第二课已经安装好了 SD,但你可能在其它地方课程中,会发现很多人用的和你的界面差距很大。这篇文章会讲一些容易忽略或者常常需要做的操作,不一定要完全照做,以后再回过头看看也可以。 1.控制类型 问题:为什么别人有“控制类型”部分,而我没有?如下红色方框…

linux centos Python + Selenium+Chrome自动化测试环境搭建?

在 CentOS 系统上搭建 Python Selenium Chrome 自动化测试环境&#xff0c;需要执行以下步骤&#xff1a; 1、安装 Python CentOS 7 自带的 Python 版本较老&#xff0c;建议使用 EPEL 库或源码安装 Python 3。例如&#xff0c;使用 EPEL 库安装 Python 3&#xff1a; sud…

Pytorch笔记之回归

文章目录 前言一、导入库二、数据处理三、构建模型四、迭代训练五、结果预测总结 前言 以线性回归为例&#xff0c;记录Pytorch的基本使用方法。 一、导入库 import numpy as np import matplotlib.pyplot as plt import torch from torch.autograd import Variable # 定义求…

「专题速递」AR协作、智能NPC、数字人的应用与未来

元宇宙是一个融合了虚拟现实、增强现实、人工智能和云计算等技术的综合概念。它旨在创造一个高度沉浸式的虚拟环境&#xff0c;允许用户在其中交互、创造和共享内容。在元宇宙中&#xff0c;人们可以建立虚拟身份、参与虚拟社交&#xff0c;并享受无限的虚拟体验。 作为互联网大…

Prompt-Tuning(一)

一、预训练语言模型的发展过程 第一阶段的模型主要是基于自监督学习的训练目标&#xff0c;其中常见的目标包括掩码语言模型&#xff08;MLM&#xff09;和下一句预测&#xff08;NSP&#xff09;。这些模型采用了Transformer架构&#xff0c;并遵循了Pre-training和Fine-tuni…