R语言使用“纽约市数据集中的优步皮卡”数据创建不同年度时间范围的可视化
一、项目背景
为了分析纽约市优步(https://baike.baidu.com/item/Uber/14900884)皮卡在不同年度的使用情况,需要利用R语言进行数据可视化。通过对比不同年度的数据,可以揭示出优步皮卡使用的趋势和变化。
二、数据准备
-
- 数据集:纽约市数据集中的优步(https://baike.baidu.com/item/Uber/14900884)皮卡数据,包含日期、时间、起始地点、结束地点、行程距离、费用等信息。
-
- 数据清洗:
• 去除重复和无效数据。
• 转换日期和时间格式为R可识别的格式。
• 提取年份信息,用于后续按年度分组。
三、所需R库和包
• ggplot2:用于数据可视化。
• ggthemes:用于定制图表主题。
• lubridate:用于日期和时间的处理。
• dplyr:用于数据清洗和转换。
• tidyr:用于数据整理。
• DT:用于在RStudio的Viewer中展示数据表。
• scales:用于坐标轴的刻度设置。
四、可视化需求
-
- 导入数据
使用read.csv()或read_excel()等函数导入数据,确保数据格式正确。
- 导入数据
-
- 数据预处理
• 利用lubridate包处理日期和时间数据,提取年份。
• 使用dplyr和tidyr包进行数据清洗和整理,如去除缺失值、转换数据类型等。
- 数据预处理
-
- 创建可视化
• 按年度统计优步(https://baike.baidu.com/item/Uber/14900884)皮卡的使用次数:使用dplyr包按年度分组,并计算每年的使用次数。然后使用ggplot2包绘制柱状图或折线图,展示不同年度的使用次数变化。
• 按年度和月份统计优步皮卡的使用次数:在按年度分组的基础上,进一步按月份分组,计算每个月的使用次数。使用ggplot2包绘制带有月份信息的柱状图或折线图,展示不同年度和月份的使用次数变化。
• 按年度和时间段(早晚高峰)统计优步皮卡的使用次数:根据时间信息划分早晚高峰时间段,然后结合年度信息统计不同时间段的使用次数。使用ggplot2包绘制堆叠柱状图或分组柱状图,展示不同年度和时间段的使用次数分布。
- 创建可视化
-
- 定制图表主题
• 使用ggthemes包中的预设主题,如“经济学人”、“华尔街日报”等,提升图表的专业性和美观度。
• 根据需要调整图表的配色方案、字体大小、标题等元素,确保图表清晰易读。
- 定制图表主题
-
- 添加交互元素
• 使用DT包在RStudio的Viewer中展示数据表,允许用户通过交互方式筛选和查看数据。
• 考虑在可视化中添加交互元素,如鼠标悬停显示详细信息、点击切换视图等,提升用户体验。
- 添加交互元素
-
- 导出可视化结果
• 将创建的可视化结果导出为图片或PDF格式,方便在报告或演示中使用。
• 确保导出的图片质量清晰,包含所有必要的图例、标题和注释信息。
- 导出可视化结果
五、交付成果
-
- R脚本:包含数据导入、预处理、可视化和导出的完整R脚本。
-
- 可视化结果:不同年度时间范围的优步(https://baike.baidu.com/item/Uber/14900884)皮卡使用次数可视化图片或PDF文件。
-
- 数据表:使用DT包展示的交互数据表(可选)。
通过以上步骤,可以创建一个详细且专业的R语言私活项目,满足对纽约市数据集中的优步(https://baike.baidu.com/item/Uber/14900884)皮卡数据进行不同年度时间范围的可视化需求。
- 数据表:使用DT包展示的交互数据表(可选)。
根据您的需求,以下是一个完整的 R 语言分析方案,用于分析纽约市优步皮卡的使用情况,包括数据导入、清洗、可视化以及导出结果。脚本中包括了所需的 R 包和具体操作步骤。
一、安装和加载所需的 R 包
在开始之前,确保已经安装并加载所需的 R 包:
# 安装并加载所需的包
install.packages(c("ggplot2", "ggthemes", "lubridate", "dplyr", "tidyr", "DT", "scales"))
library(ggplot2)
library(ggthemes)
library(lubridate)
library(dplyr)
library(tidyr)
library(DT)
library(scales)
二、数据导入和预处理
- 导入数据: 使用
read.csv()或read_excel()导入数据。假设数据文件为uber_data.csv,包含日期、时间、起始地点、结束地点、行程距离、费用等信息。
# 导入数据
uber_data <- read.csv("uber_data.csv", stringsAsFactors = FALSE)# 查看数据结构
str(uber_data)
- 数据清洗:
- 去除重复和无效数据。
- 转换日期和时间格式为 R 可识别的格式。
- 提取年份信息。
# 去除重复行
uber_data <- uber_data %>%distinct()# 转换日期和时间格式(假设日期列为 "pickup_datetime")
uber_data$pickup_datetime <- mdy_hms(uber_data$pickup_datetime)# 提取年份、月份和小时信息
uber_data$year <- year(uber_data$pickup_datetime)
uber_data$month <- month(uber_data$pickup_datetime)
uber_data$hour <- hour(uber_data$pickup_datetime)# 过滤掉无效数据(如距离为0或费用为负的记录)
uber_data <- uber_data %>%filter(distance > 0 & fare >= 0)# 查看数据清洗后的部分结果
head(uber_data)
三、创建可视化
1. 按年度统计优步皮卡的使用次数
# 按年度统计使用次数
annual_usage <- uber_data %>%group_by(year) %>%summarise(usage_count = n())# 创建柱状图
ggplot(annual_usage, aes(x = factor(year), y = usage_count)) +geom_bar(stat = "identity", fill = "skyblue") +labs(title = "纽约市优步皮卡使用次数 (按年度)",x = "年度", y = "使用次数") +theme_minimal() +theme(legend.position = "none")
2. 按年度和月份统计优步皮卡的使用次数
# 按年度和月份统计使用次数
monthly_usage <- uber_data %>%group_by(year, month) %>%summarise(usage_count = n())# 创建按年度和月份统计的折线图
ggplot(monthly_usage, aes(x = factor(month), y = usage_count, group = year, color = factor(year))) +geom_line() +geom_point() +labs(title = "纽约市优步皮卡使用次数 (按年度和月份)",x = "月份", y = "使用次数") +scale_x_discrete(labels = month.abb) + # 使用月份简写theme_minimal() +theme(legend.title = element_blank())
3. 按年度和时间段(早晚高峰)统计优步皮卡的使用次数
假设早高峰时间段为 6:00-9:00,晚高峰为 16:00-19:00。
# 定义时间段
uber_data$time_period <- case_when(uber_data$hour >= 6 & uber_data$hour < 9 ~ "Morning Peak",uber_data$hour >= 16 & uber_data$hour < 19 ~ "Evening Peak",TRUE ~ "Other"
)# 按年度和时间段统计使用次数
time_period_usage <- uber_data %>%group_by(year, time_period) %>%summarise(usage_count = n())# 创建堆叠柱状图
ggplot(time_period_usage, aes(x = factor(year), y = usage_count, fill = time_period)) +geom_bar(stat = "identity") +labs(title = "纽约市优步皮卡使用次数 (按年度和时间段)",x = "年度", y = "使用次数") +scale_fill_manual(values = c("Morning Peak" = "yellow", "Evening Peak" = "red", "Other" = "lightgray")) +theme_minimal()
四、定制图表主题
使用 ggthemes 包中的预设主题定制图表外观:
# 使用“华尔街日报”主题定制图表
ggplot(annual_usage, aes(x = factor(year), y = usage_count)) +geom_bar(stat = "identity", fill = "skyblue") +labs(title = "纽约市优步皮卡使用次数 (按年度)", x = "年度", y = "使用次数") +theme_wsj() # 使用华尔街日报主题
五、展示交互式数据表
使用 DT 包展示数据表,允许用户通过交互方式筛选和查看数据:
# 使用DT展示数据表
datatable(uber_data, options = list(pageLength = 10, autoWidth = TRUE))
六、导出可视化结果
将图表导出为图片或 PDF 格式:
# 导出为PNG图片
ggsave("uber_usage_by_year.png", width = 10, height = 6, dpi = 300)# 导出为PDF
ggsave("uber_usage_by_year.pdf", width = 10, height = 6)
七、R脚本总结
最终的 R 脚本将包含从数据导入、清洗、按年度、按月份、按时间段分析到生成可视化图表的完整流程。您可以根据需要将这些代码块整合到一个 R 脚本中,执行后即可获得完整的分析结果。
八、交付成果
- R脚本:包含数据导入、清洗、可视化和导出的完整 R 脚本。
- 可视化结果:不同年度时间范围的优步皮卡使用次数可视化图片或 PDF 文件。
- 数据表:使用 DT 包展示的交互数据表(可选)。
这个方案提供了完整的分析和可视化步骤,可以帮助你深入分析优步皮卡在纽约市的使用情况,揭示出其年度、月份和时间段的变化趋势。
相关文章:
R语言使用“纽约市数据集中的优步皮卡”数据创建不同年度时间范围的可视化
一、项目背景 为了分析纽约市优步(https://baike.baidu.com/item/Uber/14900884)皮卡在不同年度的使用情况,需要利用R语言进行数据可视化。通过对比不同年度的数据,可以揭示出优步皮卡使用的趋势和变化。 二、数据准备 数据集&a…...
电阻计RM3544、RM3545的使用
目录: 一、电阻计与PC通讯 1、硬件连接 2、RmLogger.exe的使用 二、RM3545测量35uΩ电阻 一、电阻计与PC通讯 1、硬件连接 可以设置USB或COM口(串口)连接PC,也可以设置为“打印”输出。 1)使用USB连接PC 2)使用串口连接PC …...
Unity 策略游戏地图上的网格是如何实现的
在Unity中实现策略游戏地图上的网格,主要涉及到地图数据的处理、地图的加载与渲染、以及玩家在地图上的移动与碰撞检测等关键步骤。以下是对这些步骤的详细解释: 一、地图数据的处理 收集地图数据:这包括地形高度、地形纹理、建筑物、树木等…...
《鸟哥的Linux私房菜基础篇》---4 Linux档案的压缩与打包
目录 一、常见的压缩包的扩展名 二、常见的压缩和解压指令 1、tar 2、tar gzip(.tar.gz) (或 .tgz) 3、tar bzip2(.tar.bz2) 4、zip 5、gzip 6、bzip2 7、xz 8、rar 9、7z 三、安装解压工具 一、常见的压缩包的扩展…...
Springboot 2.7+解决跨域问题,到底是在SpringBoot中添加拦截器还是修改Nginx配置
文章目录 1摘要2 核心代码2.1 SpringBoot 全局跨域拦截器2.2 Nginx 配置跨域处理2.3 Nginx 和 SpringBoot 同时添加允许跨域处理会怎么样? 3 推荐参考资料 1摘要 跨域问题报错信息: Referrer Policy:strict-origin-when-cross-origin跨域问题是在前后端分离的情况…...
Spring中Bean的作用域深入剖析与技术实践
前言 Spring框架作为Java企业级应用开发中的中流砥柱,提供了强大的依赖注入(DI)和面向切面编程(AOP)等功能。在Spring框架中,Bean的作用域(Scope)是一个非常重要的概念,…...
Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)
在当前的电商市场中,拼多多以其独特的拼团模式和优惠价格吸引了大量用户,成为继淘宝、京东之后的又一大电商平台。对于数据分析和市场研究者来说,获取拼多多的商品详情数据显得尤为重要。本文将介绍如何使用Python爬虫技术,通过调…...
工具类-列表请求工具 useList
useList 用于列表请求的基于 vue 3 的 hooks,接收请求函数、请求参数等数据,自动生成请求请求函数,分页信息等 本文有涉及到 http 请求工具和接口返回格式的内容: http 工具:一个基于 axios 封装的请求工具Response…...
Scala中的正则表达式01
规则类型具体规则示例说明单字符大多数字符匹配自身正则表达式 abc,文本 abca 匹配 a,b 匹配 b,c 匹配 c方括号 [ ][ ] 定义字符集,匹配其一[abc],文本 a、b 或 c[abc] 匹配 a、b 或者 c排除字符集 [^ ][^ ] 开头加 ^&…...
基于SpringBoot的养老院管理系统的设计与实现
一、前言 随着人口老龄化的加剧,养老院作为老年人养老的重要场所,其管理的高效性和科学性显得尤为重要。传统的养老院管理方式多依赖人工操作,存在信息记录不及时、不准确,管理流程繁琐,资源调配困难等问题。利用信息技…...
Ansible变量详解(变量定义+变量优先级+变量注册+层级定义变量+facts缓存变量)
本篇文章详细给大家介绍Ansible变量,变量适合管理剧本中每个项目的动态值,或是某些值在多个地方重复使用,如果将此值设置为变量再在其他地方调用会方便许多。会用变量,才算真正会用Ansible,话不多说,直接开…...
面向对象系统的分析和设计
来源:《设计模式精解-GOF23种设计模式解析》 作者:k_eckel k_eckels mindview - 博客园 (cnblogs.com) --------- 面向对象系统的分析和设计实际上追求的就是两点: (1)高内聚 (2)低耦合 …...
Vue 提供了Transition,可以帮助你制作基于状态变化的过渡和动画
官方文档:https://cn.vuejs.org/guide/built-ins/transition.html Transition Vue 提供了两个内置组件,可以帮助你制作基于状态变化的过渡和动画: <Transition> 会在一个元素或组件进入和离开 DOM 时应用动画。本章节会介绍如何使用…...
视频编辑技术:一键生成混剪视频的AI技术应用
随着视频内容的爆炸式增长,视频编辑技术也在不断进步。本文将探讨如何利用AI技术,实现一键生成混剪视频,并自动添加配音和字幕,以提高视频编辑的效率和质量。 AI技术在视频编辑中的应用 AI技术在视频编辑领域的应用越来越广泛&am…...
Android11 MTK 开机默认启动热点
1、需求:开机后不锁屏,默认打开热点,且长时间没有设备连接热点时保证热点也是打开的。 2、开机后不锁屏: 路径:vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml<bool name&q…...
Vue Web开发(二)
1. 项目搭建 1.1. 首页架子搭建 使用Element ui中的Container布局容器,选择倒数第二个样式,将代码复制到Home.vue。 1.1.1.下载less (1)下载less样式 npm i less (2)下载less编辑解析器 npm i less…...
Linux-实用操作
文章目录 一. 各类实用小技巧(快捷键)1. ctrl c 强制停止2. ctrl d 退出登出3. history 查看历史命令4. !命令前缀,自动匹配上一个命令5. ctrl r,搜索历史命令6. ctrl a | e,光标移动到命令开始或结束7. ctrl ← | →,左右跳…...
Elasticsearch:使用 Elastic APM 监控 Android 应用程序
一、前言 人们通过私人和专业的移动应用程序在智能手机上处理越来越多的事情。 拥有成千上万甚至数百万的用户,确保出色的性能和可靠性是移动应用程序和相关后端服务的提供商和运营商面临的主要挑战。 了解移动应用程序的行为、崩溃的发生和类型、响应时间慢的根本…...
Go的简单问题问答
基础问题回答 Go 的主要特点是什么? 简洁:语法简化,减少复杂性。并发:内置 Goroutine 和 Channel,支持轻量级并发。静态类型:强类型语言,编译时检查错误。跨平台:编译生成独立的二进…...
【攻防实验】溯源与取证分析实验
溯源与取证分析实验 溯源取证分析作为网络攻防过程中重要环节,准确找到攻击者的入侵线索(尤其是攻击突破口、攻击IP地址、域名、工具等信息),对于企业或者团队安全运营团队来说都是必备技能。常规攻击取证过程中往往会结合流量、Web访问日志、终端系统或…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
