R可视化数据必要格式——长格式
一、引言
我们在对数据进行可视化时遇到最头疼、最常见的问题是什么?数据问题。
因为我们往往不会从零自己编程进行可视化,往往是现有模板或积累,而正确的数据格式对应正确的图形包要求,一定会正确出图,所以只有一个问题——数据格式问题。
在R中,绝大多数图形要求的格式——都是长格式。
二、定义
何为长格式?
运行下面这个代码,你会有所理解:
library(tidyr)
# 假设的宽格式数据(从长格式转换而来)
wide_data <- data.frame( City = c("CityA", "CityB", "CityC"), Year = c(2020, 2020, 2020), Education = c(100, 110, 95), Healthcare = c(120, 130, 115), Transportation = c(80, 90, 75)
)
print(wide_data)
# 转换为长格式数据
long_data <- pivot_longer(wide_data, cols = -c(City, Year), # 指定哪些列需要被转换成长格式(除了City和Year) names_to = "Category", # 新增列的名称,用于存储原宽格式中的列名 values_to = "Expenditure") # 新增列的名称,用于存储原宽格式中的值
# 查看长格式数据
print(long_data)
我们习惯的宽格式如下(一个城市在某一年对应的教育、健康及交通指数):

这是转化过后的长格式(将教育、健康及交通列进行转换):

也就是说, 我选定n列,这n列的列名重新生成一列(names_to),这n列的数据重新生成一列(values_to),这两列相互对应。
三、理解
为什么要这样呢?
我们都熟悉在R中是按列名操作数据的,如果是宽格式,那么宽,不方便操作。而转换成长格式呢?我们就可以方便地对两列数据进行操作。
并且要知道”组“的概念,上述例子中,有三个组别:CityA、B、C,而每一组又有三个标签(组别):教育、健康、交通。
运行下面这个例子体会:
# 制作分组柱状图
ggplot(long_data, aes(x = Category, y = Expenditure, fill = Category)) + geom_bar(stat = "identity", position = "dodge") + # 使用identity统计量,并设置位置为分组(dodge) facet_wrap(~ City, scales = "free_y") + # 按城市分组,y轴比例自由调整 labs(title = "分组柱状图:不同城市的各类支出", x = "类别", y = "支出金额", fill = "类别") + theme_minimal() + # 使用简约主题 theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转x轴标签以改善可读性
按城市为大组进行分类:

运行下述代码:
ggplot(long_data, aes(x = City, y = Expenditure, fill = City)) + geom_bar(stat = "identity", position = "dodge") + # 使用identity统计量,并设置位置为分组(dodge) facet_wrap(~ Category, scales = "free_y") + # 按城市分组,y轴比例自由调整 labs(title = "分组柱状图:不同城市的各类支出", x = "类别", y = "支出金额", fill = "类别") + theme_minimal() + # 使用简约主题 theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转x轴标签以改善可读性
按照 教育、健康、交通为大组进行分类:

到这里,相信你对长格式及数据格式的使用都有了深刻理解,自己去试试吧!
相关文章:
R可视化数据必要格式——长格式
一、引言 我们在对数据进行可视化时遇到最头疼、最常见的问题是什么?数据问题。 因为我们往往不会从零自己编程进行可视化,往往是现有模板或积累,而正确的数据格式对应正确的图形包要求,一定会正确出图,所以只有一个问…...
Android计算器界面的设计——表格布局TableLayout实操
目录 任务目标任务分析任务实施 任务目标 使用TextView、Button等实现一个计算器界面,界面如图1所示。 图1 计算器界面效果图 任务分析 界面整体使用表格布局,第一行使用一个TextView控件,横跨4列,中间4行4列,最后一…...
【数据结构】经典链表题目详解集合(反转链表、相交链表、链表的中间节点、回文链表)
文章目录 一、反转链表1、程序详解2、代码 二、相交链表1、程序详解2、代码 三、链表的中间节点1、程序详解2、代码 四、回文链表1、程序详解2、代码 一、反转链表 1、程序详解 题目:给定单链表的头节点 head ,请反转链表,并返回反转后的链…...
人工智能在软件开发中的角色:助手还是取代者?
人工智能在软件开发中的角色:助手还是取代者? 随着科技的飞速发展,生成式人工智能(AIGC)在软件开发领域的应用越来越广泛。从代码生成、错误检测到自动化测试,AI工具正成为开发者的重要助手。然而…...
qt播放视频
在Qt中播放视频,通常可以使用QMediaPlayer和QVideoWidget这两个类。QMediaPlayer用于控制视频的播放,而QVideoWidget则用于显示视频。 以下是一个简单的示例,展示了如何使用Qt播放视频: cpp复制代码 #include <QApplication…...
搭建论坛和mysql数据库安装和php安装
目录 概念 步骤 安装mysql8.0.30 安装php 安装Discuz 概念 搭建论坛的架构: lnmpDISCUZ l 表示linux操作系统 n 表示nginx前端页面的web服务 m 表示 mysql 数据库 用来保存用户和密码以及论坛的相关内容 p 表示php 动态请求转发的中间件 步骤 ÿ…...
[护网训练]原创应急响应靶机整理集合
前言 目前已经出了很多应急响应靶机了,有意愿的时间,或者正在准备国护的师傅,可以尝试着做一做已知的应急响应靶机。 关于后期: 后期的应急响应会偏向拓扑化,不再是单单一台机器,也会慢慢完善整体制度。…...
【Linux】:程序地址空间
朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux程序地址空间的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从…...
c++ 学习面试之路
引用与指针有什么区别? 指针和引用都是地址的概念,指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。 程序为指针变量分配内存区域,而不为引用分配内存区域。 指针使用时要在前加 * ,引…...
Linux文件结构
与Windows下的文件组织结构不同,Linux不使用磁盘分区符号来访问文件系统,而是将整个文件系统表示成树状结构,Linux系统每增加一个文件系统都会将其加入到这个树中。 操作系统文件结构的开始只有一个单独的顶级目录结构,叫做根目录…...
【简单介绍下Memcached】
🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…...
字符串和正则表达式踩坑
// 中石化加油卡号格式:以 100011 开头共19位public static final String ZHONGSHIYOU_OIL_CARD_PATTERN "^100011\\d{13}$";// 中石油加油卡号格式:以90、95、70开头共16位public static final String ZHONGYOU_OIL_CARD_PATTERN "^(9…...
LLM4Decompile——专门用于反编译的大规模语言模型
概述 论文地址:https://arxiv.org/abs/2403.05286 反编译是一种将已编译的机器语言或字节码转换回原始高级编程语言的技术。该技术用于分析软件的内部工作原理,尤其是在没有源代码的情况下;Ghidra 和 IDA Pro 等专用工具已经开发出来&#…...
关于Web开发的详细介绍
目录 一、什么是Web? 二、Web网站的工作流程和开发模式 (1)简单介绍 (2)工作流程 1、第一步 2、第二步 (3)Web网站的开发模式 1、前后端分离开发模式 编辑2、混合开发模式 三、开发W…...
G1 垃圾收集器
从 JDK1.9 开始默认 G1,应用在多处理器和大容量内存环境中。 基础概念 Region G1 给整一块Heap内存区域均匀等分了N个 Region,N 默认情况下是 2048。 Region的大小只能是1M、2M、4M、8M、16M或32M (1-32M,并且为2的指数),比如-Xmx16g -Xms…...
Linux Ubuntu 20.04.06 安装Onboard虚拟键盘教程
目录 一、在线安装 二、源码安装 三、包安装 四、设置 五、禁用系统键盘 一、在线安装 sudo apt-get update #更新软件源 sudo apt-get install onboard #安装Onboard sudo apt-get purge onboard # 卸载 安装后,如果在终端使用命令:onboard 启…...
简介空间复杂度
我们承接上一篇博客。我们写了时间复杂度之后,我们就要来介绍一下另一个相关复杂度了。空间复杂度。我觉得大家应该对空间复杂度认识可能比较少一些。我就是这样,我很少看见题目中有明确要求过空间复杂度的。但确实有这个是我们不可忽视的,所…...
windows server2016搭建AD域服务器
文章目录 一、背景二、搭建AD域服务器步骤三、生成可供java程序使用的keystore文件四、导出某用户的keytab文件五、主机配置hosts文件六、主机确认是否能ping通本人其他相关文章链接 一、背景 亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以…...
android deep links即scheme uri跳转以及googlePlay跳转配置
对于googlePlay的Custom URL就是googlePlay上APP网址: https://play.google.com/store/apps/details?idcom.yourapp如果是国内一些应用,则考虑market://包名等方式,自行百度。 对于Android URI Scheme: 首先需要在Manifest xm…...
QT5.14.2与Mysql8.0.16配置笔记
1、前言 我的QT版本为 qt-opensource-windows-x86-5.14.2。这是QT官方能提供的自带安装包的最近版本,更新的版本需要自己编译源代码,可点击此链接进行下载:Index of /archive/qt/5.14/5.14.2,选择下载 qt-opensource-windows-x86…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
