网站建设介绍语,html动态页面,wordpress如何播放m3u8的视频,wordpress 单核 并发下面内容摘录自《R 语言与数据科学的终极指南》专栏文章的部分内容#xff0c;每篇文章都在 5000 字以上#xff0c;质量平均分高达 94 分#xff0c;看全文请点击下面链接#xff1a;
1章4节#xff1a;数据可视化#xff0c; R 语言的静态绘图和 Shiny 的交互可视化演… 下面内容摘录自《R 语言与数据科学的终极指南》专栏文章的部分内容每篇文章都在 5000 字以上质量平均分高达 94 分看全文请点击下面链接
1章4节数据可视化 R 语言的静态绘图和 Shiny 的交互可视化演示更新2024/08/14-CSDN博客文章浏览阅读14次。使用R语言数据科学家和分析师不仅可以快速创建原型还可以开发全功能的应用程序供同事、客户或公众使用。这种能力为数据分析和可视化带来了全新的可能性。https://blog.csdn.net/2301_79425796/article/details/141187347欢迎订阅我们专栏
在数据科学中数据的探索和可视化是分析的重要组成部分。R 语言提供了强大的工具来进行数据分析和可视化其中 Shiny 包允许我们构建交互式的 Web 应用使用户可以动态地探索数据。本文将详细介绍如何使用 Shiny 构建一个交互式的散点图应用该应用允许用户选择鸢尾花数据集的不同变量进行可视化并通过多种选项自定义图形。
1、准备工作
在开始之前请确保你已经安装了以下 R 包
shiny: 用于构建交互式 Web 应用的核心包。bslib: 提供主题支持允许我们定制 Shiny 应用的外观。dplyr: 一个用于数据操作的 R 包使数据过滤和选择更加简洁和高效。ggplot2: R 中最流行的数据可视化包用于创建优美且灵活的图形。ggExtra: 用于在 ggplot2 图形上添加额外信息如边际图。
可以通过运行以下命令来安装这些包
install.packages(c(shiny, bslib, dplyr, ggplot2, ggExtra))
2、鸢尾花数据集
鸢尾花数据集iris是数据科学中常用的经典数据集之一。该数据集包含 150 条记录每条记录代表一朵鸢尾花的测量数据。数据集包括四个数值变量萼片长度、萼片宽度、花瓣长度和花瓣宽度和一个分类变量物种。
3、构建 Shiny 应用
我们将分两个部分来构建这个应用用户界面UI和服务器端逻辑Server。用户界面定义了应用的外观及交互元素而服务器端逻辑则处理用户的输入并生成相应的输出。
加载展包和筛选数值型列
# 加载必要的R包
library(shiny) # 用于构建交互式Web应用
library(bslib) # 用于主题定制的包
library(dplyr) # 数据操作包
library(ggplot2) # 数据可视化包
library(ggExtra) # 用于在ggplot2图形中添加边际图的包# 加载鸢尾花数据集
df - iris# 筛选出适合散点图的数值型列
df_num - df | select(where(is.numeric)) 例如如果鸢尾花数据集中包含列 Sepal.Length、Sepal.Width、Petal.Length、Petal.Width 和 Species其中前四列是数值型那么 df_num 将只包含前四列。 定义用户界面
在 Shiny 应用中用户界面UI定义了应用的布局和用户交互组件。我们将使用 page_sidebar 函数来创建一个带有侧边栏的页面布局。
# 定义用户界面
ui - page_sidebar(sidebar sidebar(# 下拉菜单让用户选择X轴变量varSelectInput(xvar, X 变量, df_num, selected Sepal.Length),# 下拉菜单让用户选择Y轴变量varSelectInput(yvar, Y 变量, df_num, selected Sepal.Width),# 复选框组允许用户根据物种进行筛选checkboxGroupInput(species, 按物种筛选,choices unique(df$Species), selected unique(df$Species)),hr(), # 添加水平分隔线# 复选框允许用户选择是否按物种显示checkboxInput(by_species, 显示物种, TRUE),# 复选框允许用户选择是否显示边际图checkboxInput(show_margins, 显示边际图, TRUE),# 复选框允许用户选择是否添加平滑曲线checkboxInput(smooth, 添加平滑曲线)),# 输出散点图plotOutput(scatter)
)
varSelectInput: 允许用户从鸢尾花数据集的数值变量中选择 X 轴和 Y 轴的变量。checkboxGroupInput: 允许用户根据物种筛选数据。hr: 插入一条水平分隔线以分隔不同的输入控件。checkboxInput: 复选框用于控制是否显示物种、是否添加边际图以及是否在散点图中添加平滑曲线。plotOutput: 用于在页面上展示由 ggplot2 生成的图形。 定义服务器端逻辑 定义服务器端逻辑指的是明确和编写在服务器端运行的一系列规则、流程和操作以处理来自客户端如网页浏览器或移动应用的请求并根据这些请求执行相应的任务。服务器端逻辑涵盖了广泛的功能例如接收和解析客户端发送的数据与数据库进行交互以读取或写入信息执行复杂的计算和数据处理操作根据特定条件做出决策生成动态的内容并将其返回给客户端以及处理用户认证、授权和安全性等方面的任务。 举个例子当用户在购物网站上提交订单时服务器端逻辑会验证订单信息的完整性和准确性检查库存数量计算总价将订单数据保存到数据库中并最终向用户返回确认消息。又比如在社交媒体平台上服务器端逻辑会决定哪些内容应该显示在用户的动态页面上基于用户的关注列表、发布时间和内容相关性等因素进行筛选和排序。 # 定义服务器端逻辑
server - function(input, output, session) {# 根据用户选择的物种筛选数据subsetted - reactive({req(input$species) # 确保选择了物种df | filter(Species %in% input$species) # 筛选数据})# 生成散点图output$scatter - renderPlot({p - ggplot(subsetted(), aes(!!input$xvar, !!input$yvar)) list(theme(legend.position bottom), # 设置图例位置if (input$by_species) aes(color Species), # 如果选择按物种显示按颜色区分物种geom_point(), # 绘制散点if (input$smooth) geom_smooth() # 如果选择平滑曲线添加平滑线)# 如果选择显示边际图添加边际图if (input$show_margins) {margin_type - if (input$by_species) density else histogramp - ggExtra::ggMarginal(p, type margin_type, margins both,size 8, groupColour input$by_species, groupFill input$by_species)}p # 返回生成的图形}, res 100) # 设置图形分辨率
}
subsetted: 使用 reactive 函数来创建一个反应式表达式它根据用户选择的物种过滤数据集。req 函数确保在没有选择物种时应用不会出错。renderPlot: 根据用户的输入动态生成图形。ggplot 函数用于创建基本的散点图aes 函数定义了 X 轴和 Y 轴的变量。ggExtra::ggMarginal: 如果用户选择了显示边际图ggMarginal 函数会在散点图的边缘添加密度图或直方图。
3. 启动 Shiny 应用
shinyApp(ui, server)
这段代码将 UI 和服务器逻辑组合在一起并启动 Shiny 应用。运行此应用后用户可以选择不同的 X 轴和 Y 轴变量筛选特定物种并通过复选框控制是否显示物种、添加边际图或平滑曲线。 应用演示与扩展
在完成基础的 Shiny 应用之后能够依据实际的需求来展开更进一步的拓展。比如说您能够增添数据导入的功能赋予用户上传自身数据集的权限并对其展开可视化的分析还能够丰富图表的类型除了常见的散点图之外添加诸如箱线图、柱状图等其他类型的图表此外借助 bslib 包您能够为应用程序设定专属的自定义主题从而使之与特定的品牌风格或者审美偏好相契合。
本文详细介绍了如何使用 Shiny 构建一个交互式的散点图应用并提供了通过鸢尾花数据集进行数据可视化的示例。通过 Shiny 的强大功能我们可以轻松地将静态的数据分析转变为动态、互动的 Web 应用从而使数据分析过程更加直观和用户友好。所以使用 Shiny数据科学家和分析师不仅可以快速创建原型还可以开发全功能的应用程序供同事、客户或公众使用。这种能力使得 Shiny 成为 R 生态系统中不可或缺的一部分为数据分析和可视化带来了全新的可能性。 .........
欢迎订阅我们专栏深度系统地学习R语言。 为帮助大家更出色地掌握临床统计、数据挖掘以及人工智能建模的入门知识和应用由于众多同学在计算机编程上经验欠缺特此开设《R 语言与数据科学的终极指南》专栏。该专栏每周至少会定期更新三篇直到整个专栏更新完成。每篇文章都在 5000 字以上质量平均分高达 94 分。要提醒大家的是每结束一个章节专栏的优惠力度就会减小当下正是订阅的最佳优惠时段诚邀各位积极订阅 专栏《R 语言与数据科学的终极指南》链接https://blog.csdn.net/2301_79425796/category_12729892.html?spm1001.2014.3001.5482