创建城市人口总量趋势图

news2025/1/15 16:42:49

创建城市人口总量趋势图

  • 学习目标
    • 使用数据
  • 人口总量趋势方程
    • 数据导入
    • 对数据进行处理
  • fct_reorder2的应用
    • 对数据进行整理
    • 对图像进行可视化操作
    • 使用fct_reorder2
    • 去掉趋势点
  • 内容小结


学习目标

我们所采用的学习内容来自B站的Lizongzhang老师的R语言的学习分享
今天学习的主要内容是关于
使用R语言表示人口总量趋势的方程以及fct_reorder2的使用

使用数据

相关使用的数据放在这里
[视频中使用的数据文件:10city population 2000-21.xls]

人口总量趋势方程

数据导入

下面是学习的主要内容
先对数据进行导入(这个根据自身数据所在位置进行判断)
然后设置一个result的dataframe保存计算的结果

#fct_reorder2()
#导入数据
library(readxl)
data<- read_excel("D:/R语言/10city population 2000-21.xls")
#View(data)
data$t<-c(22:1)
data$year<-c(2021:2000)
result<-data.frame(
  city=colnames(data)[2:11]
)
result[,c("growth_size","growth_rate")]=NA

对数据进行处理

使用循环语句进行操作

library(tidyverse)
for(i in 1:10){
  result$city[i] %>% print()
  eq1<-lm(get(result$city[i])~t,data)
  eq1 %>% print()
  result[i,2]<-eq1$coefficients[2] %>% round()
  predict(eq1,data.frame(t=c(23:25))) %>% 
    round() %>% print
}
#get函数可以去到名称的双引号
#t表示增长人数

得到的相应的结果如下

[1] "北京市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
    1331.87        46.73  

   1    2    3 
2407 2453 2500 
[1] "上海市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
    1666.64        44.06  

   1    2    3 
2680 2724 2768 
[1] "重庆市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
    2703.59        22.47  

   1    2    3 
3220 3243 3265 
[1] "广州市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
     704.90        54.77  

   1    2    3 
1965 2019 2074 
[1] "深圳市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
     582.01        42.01  

   1    2    3 
1548 1590 1632 
[1] "成都市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
     919.10        51.75  

   1    2    3 
2109 2161 2213 
[1] "珠海市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
    111.615        4.471  

  1   2   3 
214 219 223 
[1] "厦门市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
     180.59        16.44  

  1   2   3 
559 575 592 
[1] "天津市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
     960.31        24.64  

   1    2    3 
1527 1552 1576 
[1] "长沙市"

Call:
lm(formula = get(result$city[i]) ~ t, data = data)

Coefficients:
(Intercept)            t  
     526.19        20.26  

   1    2    3 
 992 1012 1033 

其中t表示的是每年的增长数量
另外一种写法就是对数据人口数量(解释变量)取log
eq1改写成eq2

library(tidyverse)
for(i in 1:10){
  result$city[i] %>% print()
  eq2<-lm(log(get(result$city[i]))~t,data)
  eq2 %>% print()
  result[i,3]<-eq2$coefficients[2] %>% round(3)
  #第二行第三列
  predict(eq2,data.frame(t=c(23:25))) %>% 
    exp() %>% #再取一次反对数
    round() %>% print
}
#get函数可以去到名称的双引号
#t表示增长人数

fct_reorder2的应用

对数据进行整理

对数据进行整合

long<-data %>% 
  pivot_longer(cols=2:11,
               names_to="city",
               values_to="population")

打开long数据进行查看
在这里插入图片描述

对图像进行可视化操作

对整理后的数据进行绘制图像

long %>% 
  ggplot(aes(year,population,col=city))+
  geom_point()+
  geom_smooth(method="lm",#估计的方法使用lm
              se=FALSE)+
  labs(title="2000-2021常驻人口人数(万人)")#添加标题
#对数据进行排序(按照城市的名称进行排列)

请添加图片描述
由于图像整体上看起来十分的混乱,对数据进行排序之后再绘制图像

使用fct_reorder2

使用fct_reorder2()进行数据的排序,实现对图标以及图像的排序

long %>% 
  mutate(city=fct_reorder2(city,year,
                           population)) %>% 
  ggplot(aes(year,population,col=city))+
  geom_point()+
  geom_smooth(method="lm",
              se=FALSE)+
  labs(title="2000-2021常驻人口人数(万人)")

请添加图片描述
这里可以看到图像的图标的位置和画出的线的位置是一一对应的

去掉趋势点

保留线段,去掉点,可以使用line


long %>% 
  mutate(city=fct_reorder2(city,year,
                           population)) %>% 
  ggplot(aes(year,population,col=city))+
  geom_line()+
  labs(title="2000-2021常驻人口人数(万人)")

在这里插入图片描述

内容小结

本次学习到的内容就是根据人口数量的变化绘制相应的人口总量趋势方程

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据集说明:COCO的两个数据集COCO-stuff和COCO-Caption

数据集图片数量比较 COCO-Caption有33万张图、50万个caption COCO-Stuff有16.4万张图 172个类别(80thing、91stuff、1个未标注类) COCO-stuff的具体类别说明 COCO-Stuff contains 172 classes:80 thing, 91 stuff, and 1 class unlabeled. The 80 thing classes are the same …

群晖nas部署python项目

事件起因是因为想再硬盘里下载小姐姐&#xff0c;在线播放会卡顿很不爽&#xff0c; 开始用一些在线爬的网站&#xff0c;网速非常慢&#xff0c;我发现自己有nas 如果把项目部署再nas上 通过命令行下载就好了 我就开始检索资料&#xff0c;发现网上的都是一些过时的文章&#…

分布式系统关键路径延迟分析实践

作者 | 月色如海 导读 随着对用户体验的不断追求&#xff0c;延迟分析成为大型分布式系统中不可或缺的一环。本文介绍了目前在线服务中常用的延迟分析方法&#xff0c;重点讲解了关键路径分析的原理和技术实现方案&#xff0c;实践表明此方案效果显著&#xff0c;在耗时优化方面…

图解深度学习-提高泛化能力的方法

数据集 在深度学习的训练过程中&#xff0c;神经网络的类型和结构固然重要&#xff0c;但训练样本才是重中之重。 数据增强 当训练样本数量较少时&#xff0c;可以通过数据增强来增加样本的多样性。 数据增强就是通过对样本图像进行平移、旋转、镜像翻转等方式进行变换。除…

【Java】Log4j日志

目录 1.日志概述 日志是什么 为什么会有日志 2.log4j概述 什么是log4j 版本 3.log4j入门案例 步骤 实现 总结 4.log4j1详情&#xff1a;记录器rootLogger 5.log4j1详情&#xff1a;日志级别 6.log4j1详情&#xff1a;输出源appender ConsoleAppender FileAppend…

第二十八章 数论——扩展欧几里德算法与线性同余方程

第二十八章 扩展欧几里德算法一、裴蜀定理1、定理内容2、定理证明二、扩展欧几里德定理1、作用2、思路3、代码三、线性同余方程1、问题2、思路3、代码一、裴蜀定理 1、定理内容 对于任意整数aaa和bbb&#xff0c;一定存在整数xxx&#xff0c;yyy使得axbyaxbyaxby是gcd(a,b)gc…

Linux的基本指令

前言 相对于linux操作系统,其实window也是操作系统&#xff0c;我们这节课说的是Linux的基本指令 那么在window上有没有基本指令呢&#xff0c;答案是有的&#xff0c;我们可以使用windowsr进入cmd就可以用我们的基本指令 基本指令 在本文中&#xff0c;我们基本上都使用类比的…

基于threeJS实现圣诞节孔明灯效果

1.效果图 2.实现思路 使用three.js的套路几乎是固定的&#xff1a; 1 初始化场景&#xff08;scene&#xff09; 2.创建透视相机&#xff08;camera&#xff09; 3.设置相机位置&#xff08;position&#xff09; 4.创建纹理加载器对象&#xff08;texture&#xff09; 5.创建…

【SegNeXt】语义分割中对卷积注意力设计的反思

目录 1.摘要 2.相关工作 2.1语义分割 2.2多尺度网络 2.3注意力机制 3.网络结构 3.1卷积编码器 3.2解码器 4.实验 个人总结&#xff1a; 论文链接&#xff1a;论文 代码链接&#xff1a;代码 论文发表于NeurIPS 2022&#xff0c;值得注意的是&#xff0c;在Transforme…

UVM入门和进阶实验0

一. 概述 UVM学习流程仍然按照SV时候的核心流程&#xff0c;即&#xff1a; 如何搭建验证框架验证组件之间的连接和通信如何编写测试用例&#xff0c;继而完成复用和覆盖率的收敛 我们UVM入门和进阶实验0还是同之前SV验证实验0思想一样&#xff0c;让大家通过简单的实验要求…

学习HTTP协议,这一篇就够啦 ~~

HTTP协议一、什么是HTTP1.1 应用层协议1.2 HTTP1.3 HTTP协议的工作过程二、HTTP协议格式2.1 Fiddler抓包工具2.2 协议格式三、HTTP请求 (Request)3.1 认识 "方法" (method)3.1.1 GET 方法3.1.2 POST 方法3.1.3 GET和POST比较3.1.4 其他方法3.2 认识URL3.2.1 URL基本格…

基于迅为3568开发板的多屏同/异显动态方案

iTOP-RK3568开发板采用四核Cortex-A55处理器&#xff0c;芯片内置VOP控制器&#xff0c;支持HDMI、LVDS、MIPI、EDP四种显示接口的多屏同显、异显和异触&#xff0c;可有效提高行业定制的拓展性。 iTOP-RK3568开发板支持以下屏幕&#xff1a; 迅为 LVDS 7 寸屏幕 迅为 LVDS …

【数学】三角函数小题

∣三角函数小题NightguardSeries.∣\begin{vmatrix}\huge{\textsf{ 三角函数小题 }}\\\texttt{Nightguard Series.}\end{vmatrix}​ 三角函数小题 Nightguard Series.​​ 以下是一些废话 不愿意看的可以跳过 最近守夜人更新得很慢&#xff0c;守夜人拖更主要有三个原因&#…

Hudi(1):Hudi概述

目录 0. 相关文章链接 1. Hudi简介 2. 发展历史 3. Hudi特性 4. 使用场景 4.1. 近实时写入 4.2. 近实时分析 4.3. 增量 pipeline 4.4. 增量导出 0. 相关文章链接 Hudi文章汇总 1. Hudi简介 Apache Hudi&#xff08;Hadoop Upserts Delete and Incremental&#xff0…

servlet(三)文件的下载

主要有几个步骤: 1、获取要下载的文件名 2、读取要下载的文件内容 (通过 ServletContext 对象可以读取,这个也是 ServletContext的应用) 3、获取要下载的文件类型 4、在回传前&#xff0c;通过响应头告诉客户端返回的数据类型 5、还要告诉客户端收到的数据是用于下载使用&#…

Web APIs 简介、DOM

文章目录一、Web APIs 简介1、Web APIs 和 JS 基础关联性2、API 和 Web API二、DOM1、DOM简介2、获取元素&#xff08;1&#xff09;根据ID获取&#xff08;2&#xff09;根据标签名获取&#xff08;3&#xff09;通过HTML5新增的方法获取&#xff08;4&#xff09;获取特殊元素…

【数据库数据恢复】oracle数据库执行truncate table的数据恢复案例

数据库恢复环境&#xff1a; 操作系统&#xff1a;windows server&#xff1b; 数据库&#xff1a;win_oracle_x64。 数据库故障&分析&#xff1a; oracle数据库误truncate table&#xff0c;备份无法使用。 oracle数据库误操作导致数据丢失是比较常见的一种故障&#xf…

《Linux运维总结:Centos7.6二进制安装Mysql8.0.30》

一、安装Mysql服务 1.1、下载二进制安装包 官方&#xff1a;二进制安装包下载 [rootlocalhost ~]# cd /data/pkgs [rootlocalhost pkgs]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz [rootlocalhost pkgs]# tar a…

启动报异常:org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

目录 异常信息 异常原因 解决结果 异常信息 17:20:38.414 [main] ERROR o.s.b.SpringApplication - [reportFailure,870] - Application run failedorg.yaml.snakeyaml.parser.ParserException: while parsing a block mapping in reader, line 4, column 3: name: R…

JMeter分布式部署

目录 一、JMeter分布式执行原理 二、jmeter分布式部署 三、jmeter分布式执行 X、常见问题 1、Cannot start. localhost.localdomain is a loopback address 一、JMeter分布式执行原理 1、jmeter分布式压测时&#xff0c;选择其中一台作为调度机(master)&#xff0c;其他机…