R语言数据可视化

R note book 文档–输出html格式文档,plotly不能生成PDF文件

---
title: "R语言数据可视化"
output: html_notebook
---

在R语言中进行数据可视化是数据分析和呈现的重要环节,R提供了多种强大的绘图系统和工具。以下是常见的数据可视化方法和示例,从基础到高级逐步介绍:

1. 基础绘图系统(Base R Graphics)

R内置的基础绘图函数,适合快速生成简单图表。

散点图
# 示例数据
x <- 1:10
y <- x^2# 绘制散点图
plot(x, y, main = "散点图示例",  # 标题xlab = "X轴", ylab = "Y轴",  # 坐标轴标签pch = 16,  # 点的形状col = "blue",  # 点的颜色cex = 1.5)  # 点的大小
折线图
# 生成数据
time <- seq(1, 10, by = 0.5)
values <- sin(time)# 绘制折线图
plot(time, values, type = "l",  # type="l"表示折线图main = "正弦曲线",xlab = "时间", ylab = "值",col = "red", lwd = 2)  # 线宽为2
箱线图
# 使用内置数据集mtcars
data(mtcars)# 按气缸数(cyl)分组绘制mpg的箱线图
boxplot(mpg ~ cyl, data = mtcars,main = "不同气缸数车辆的MPG分布",xlab = "气缸数", ylab = "每加仑英里数(MPG)",col = c("lightblue", "lightgreen", "lightpink"))

2. ggplot2包(推荐)

基于图形语法的高级绘图系统,适合创建复杂、精美的图表。

安装与加载
#install.packages("ggplot2")  # 首次使用需安装
library(ggplot2)
散点图
# 使用内置数据集iris
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +geom_point(size = 3) +  # 散点图层labs(title = "鸢尾花萼片长度与宽度关系",x = "萼片长度(cm)", y = "萼片宽度(cm)") +theme_minimal()  # 使用简洁主题
柱状图
# 统计不同Species的数量
ggplot(iris, aes(x = Species)) +geom_bar(fill = "skyblue", color = "black") +  # 柱状图层labs(title = "鸢尾花种类分布", x = "种类", y = "数量") +theme_classic()  # 使用经典主题
箱线图与小提琴图
ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +geom_boxplot(alpha = 0.7) +  # 箱线图层geom_violin(alpha = 0.3) +   # 小提琴图层(显示密度分布)labs(title = "不同种类鸢尾花花瓣长度分布",x = "种类", y = "花瓣长度(cm)")

3. 高级可视化

热图(Heatmap)
# 使用内置数据集mtcars
cor_matrix <- cor(mtcars)  # 计算相关系数矩阵# 绘制热图
heatmap(cor_matrix, main = "汽车特征相关性热图",col = cm.colors(256),  # 颜色渐变scale = "column")  # 按列标准化
直方图与密度图
# 使用ggplot2绘制直方图与密度图
ggplot(iris, aes(x = Sepal.Length)) +geom_histogram(aes(y = ..density..),  # 直方图(显示密度)bins = 15, fill = "lightblue", color = "black") +geom_density(alpha = 0.2, fill = "blue") +  # 密度曲线facet_wrap(~ Species) +  # 按种类分面labs(title = "鸢尾花萼片长度分布", x = "萼片长度(cm)", y = "密度")
气泡图(散点图+大小/颜色映射)
# 使用ggplot2绘制气泡图
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) +geom_point(aes(size = Petal.Length, color = Species), alpha = 0.7) +  # alpha设置透明度scale_size_continuous(range = c(2, 10)) +  # 控制点大小范围labs(title = "鸢尾花特征气泡图",x = "萼片长度(cm)", y = "萼片宽度(cm)",size = "花瓣长度", color = "种类") +theme_bw()  # 使用黑白主题

4. 交互式可视化(plotly)

创建可交互的图表,适合网页展示或数据分析。

安装与基本用法
#install.packages("plotly")
library(plotly)# 将ggplot2图表转为交互式
p <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +geom_point(size = 3)ggplotly(p)  # 转为交互式图表
3D散点图
# 创建3D散点图
plot_ly(iris, x = ~Sepal.Length, y = ~Sepal.Width, z = ~Petal.Length,color = ~Species, type = "scatter3d", mode = "markers") %>%layout(title = "鸢尾花3D特征散点图")

5. 数据可视化注意事项

  1. 选择合适的图表类型:根据数据类型和分析目的选择(如比较用柱状图,分布用箱线图,关系用散点图)。
  2. 保持简洁:避免过多装饰元素,确保数据是焦点。
  3. 使用适当的颜色:避免使用过于鲜艳或难以区分的颜色,考虑色盲用户。
  4. 添加必要标签:确保图表标题、坐标轴标签、图例清晰。
  5. 优化布局:合理安排图表大小、比例和间距。

6. 资源推荐

  • ggplot2官方文档
  • R Graphics Cookbook
  • Plotly for R

通过以上方法,你可以在R中创建从简单到复杂的各种数据可视化图表,满足不同的分析和展示需求。

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

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

相关文章

Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:垂直菜单展开与收回 主要内容:超长菜单实现、展开与收回bug解释、Axure9版本限制等问题解…

云原生攻防2(Docker基础补充)

Docker基础入门 容器介绍 Docker是什么 Docker是基于Linux内核实现,最早是采用了 LXC技术,后来Docker自己研发了runc技术运行容器。 它基于Google Go语言实现,采用客户端/服务端架构,使用API来管理和创建容器。 虚拟机 VS Docker Namespace 内核命名空间属于容器非常核…

Spring Boot 拦截器:解锁5大实用场景

一、Spring Boot中拦截器是什么 在Spring Boot中&#xff0c;拦截器&#xff08;Interceptor&#xff09;是一种基于AOP&#xff08;面向切面编程&#xff09;思想的组件&#xff0c;用于在请求处理前后插入自定义逻辑&#xff0c;实现权限校验、日志记录、性能监控等非业务功能…

Vue百日学习计划Day24-28天详细计划-Gemini版

总目标: 在 Day 24-27 熟练掌握 Vue.js 的各种模板语法&#xff0c;包括文本插值、属性绑定、条件渲染、列表渲染、事件处理和表单绑定&#xff0c;并能结合使用修饰符。 所需资源: Vue 3 官方文档 (模板语法): https://cn.vuejs.org/guide/essentials/template-syntax.htmlVu…

分布式微服务系统架构第125集:AI大模型

加群联系作者vx&#xff1a;xiaoda0423 仓库地址&#xff1a;https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ 一、user 表&#xff08;用户表&#xff09; sql 复制编辑 create table if not exists user (id bigint auto_increment comment id pri…

机器学习 Day16 聚类算法 ,数据降维

聚类算法 1.简介 1.1 聚类概念 无监督学习&#xff1a;聚类是一种无监督学习算法&#xff0c;不需要预先标记的训练数据 相似性分组&#xff1a;根据样本之间的相似性自动将样本归到不同类别 相似度度量&#xff1a;常用欧式距离作为相似度计算方法 1.2 聚类vs分类 聚类&…

【Linux】第十八章 调优系统性能

1. 系统管理员可以使用哪个命令来更改tuned守护进程的设置&#xff1f; tuned 的调优配置集存储在 /usr/lib/tuned&#xff08;默认&#xff09; 和 /etc/tuned&#xff08;自定义 或当前有效&#xff09;目录下。每个配置集都有一个单独的目录&#xff0c;目录中包含 tuned.c…

【JVS更新日志】企业文档AI助手上线、低代码、智能BI、智能APS、AI助手5.14更新说明!

项目介绍 JVS是企业级数字化服务构建的基础脚手架&#xff0c;主要解决企业信息化项目交付难、实施效率低、开发成本高的问题&#xff0c;采用微服务配置化的方式&#xff0c;提供了低代码数据分析物联网的核心能力产品&#xff0c;并构建了协同办公、企业常用的管理工具等&…

ollama调用千问2.5-vl视频图片UI界面小程序分享

1、问题描述&#xff1a; ollama调用千问2.5-vl视频图片内容&#xff0c;通常用命令行工具不方便&#xff0c;于是做了一个python UI界面与大家分享。需要提前安装ollama&#xff0c;并下载千问qwen2.5vl:7b 模型&#xff0c;在ollama官网即可下载。 &#xff08;8G-6G 显卡可…

Web 架构之会话保持深度解析

文章目录 一、引言二、会话保持的基本概念2.1 什么是会话2.2 为什么需要会话保持 三、会话保持的常见实现方式3.1 基于客户端的会话保持3.1.1 Cookie 方式3.1.2 URL 重写方式 3.2 基于服务器端的会话保持3.2.1 负载均衡器会话保持3.2.2 会话共享 四、会话保持可能遇到的问题及解…

Maven 项目中将本地依赖库打包到最终的 JAR 中

文章目录 前言详细步骤 前言 在现代后端开发中&#xff0c;构建高效且可扩展的 Web 应用程序通常依赖于多种第三方库和内部依赖。这些依赖可以来自公共仓库&#xff0c;也可能是公司内部自研的库或尚未发布到公共仓库的 JAR 包。本文将详细介绍如何在 Maven 项目中处理本地依赖…

快速定位到源码位置的插件 - vite/webpack

1. vite-plugin-vue-devtools npm i vite-plugin-vue-devtools -D vite.config.js中配置 import vueDevTools from vite-plugin-vue-devtoolsexport default defineConfig({server: {port: 5173,host: 0.0.0.0},plugins: [vue(),vueJsx(),vueDevTools({componentInspector: t…

基于AH1101芯片的5V升18.6V LED恒流背光供电方案设计

基于AH1101芯片的5V升18.6V LED恒流背光供电方案设计 在现代电子设备中&#xff0c;LED背光技术因其高效、节能、寿命长等优点被广泛应用于各类显示设备。本文将详细介绍如何利用AH1101高效升压恒流驱动芯片&#xff0c;实现从5V输入电压升压至18.6V&#xff0c;为LED背光板提供…

16.1 - VDMA视频转发实验之TPG

文章目录 1 实验任务2 系统框图3 硬件设计3.1 IP核配置3.2 注意事项 4 软件设计4.1 注意事项4.2 工程源码4.2.1 main.c文件 1 实验任务 基于14.1&#xff0c;使用Xilinx TPG&#xff08;Test Pattern Generator&#xff09; IP提供视频源&#xff0c;将视频数据通过VDMA写入PS…

认识Docker/安装Docker

一、认识Docker Docker的定义 Docker 是一个开源的应用容器引擎&#xff0c;允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中。容器化技术使得应用可以在任何支持 Docker 的环境中运行&#xff0c;确保环境一致性。 Docker的核心组件 Docker Engine&#xff1a;负责…

实用工具:微软软件PowerToys(完全免费),实现多台电脑共享鼠标和键盘(支持window系统)

实用工具&#xff1a;微软软件 PowerToys 让多台电脑共享鼠标和键盘 在如今的数字化办公与生活场景中&#xff0c;我们常常会面临同时使用多台电脑的情况。例如&#xff0c;办公时可能一台电脑用于处理工作文档&#xff0c;另一台用于运行专业软件或查看资料&#xff1b;家庭环…

西门子 Teamcenter13 Eclipse RCP 开发 1.1 工具栏 普通按钮

西门子 Teamcenter13 Eclipse RCP 开发 1.1 工具栏 普通按钮 1 配置文件2 插件控制3 命令框架 位置locationURI备注菜单栏menu:org.eclipse.ui.main.menu添加到传统菜单工具栏toolbar:org.eclipse.ui.main.toolbar添加到工具栏 style 值含义显示效果push普通按钮&#xff08;默…

React中巧妙使用异步组件Suspense优化页面性能。

文章目录 前言一、为什么需要异步组件&#xff1f;1. 性能瓶颈分析2. 异步组件的价值 二、核心实现方式1. React.lazy Suspense&#xff08;官方推荐&#xff09;2. 路由级代码分割&#xff08;React Router v6&#xff09; 总结 前言 在 React 应用中&#xff0c;随着功能复…

现在环保方面有什么新的技术动态

环保领域的技术发展迅速&#xff0c;尤其在“双碳”目标、数字化转型和可持续发展背景下&#xff0c;涌现出许多创新技术和应用。以下是当前环保领域的新技术动态&#xff08;截至2024年&#xff09;&#xff1a; 一、碳中和与碳减排技术 CCUS&#xff08;碳捕集、利用与封存&a…

solidwors插件 开发————仙盟创梦IDE

SolidWorks VBS SolidWorks 支持通过 VBScript&#xff08;.vbs&#xff09;脚本 进行简单的二次开发&#xff08;如自动化建模、批量操作等&#xff09;&#xff0c;但严格来说这属于 脚本编程&#xff0c;而非传统的插件&#xff08;Plug-in&#xff09;开发&#xff08;插件…