下面内容摘录自《用R探索医药数据科学》专栏文章的部分内容(原文7243字)。
2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客
RStudio作为R语言的集成开发环境,因其强大的功能和易用性,成为数据科学家、统计学家和分析师的首选工具之一。除了用于编写和运行代码,RStudio还提供了强大的项目管理功能,帮助用户有效地组织和管理数据分析项目。本篇文章将详细介绍如何用RStudio进行项目管理,包括项目的创建与结构、文件管理、版本控制、协作工具和自动化工作流程。
1、RStudio的项目创建
2、RStudio项目的推荐命名法
二、RStudio中ggplot2的绘图
R语言有多个绘图系统,而ggplot2是其中最强大且最受欢迎的扩展包之一。ggplot2基于“语法图形”的理念,使得用户能够轻松地创建优雅而复杂的图表。通过ggplot2,您可以用简洁的代码生成高质量的可视化图表,帮助分析和展示数据。
1、安装和加载ggplot2
2、使用ggplot2创建图表
在数据科学领域,数据可视化是一种强大的工具,它不仅能够帮助我们理解数据,还能让我们更有效地传达信息。传统的静态图表在许多情况下已经足够好用,但在处理时间序列数据或需要展示变化趋势时,动态图则更为直观和生动。gganimate
是R语言中的一个包,它扩展了ggplot2
的功能,使我们能够轻松创建各种类型的动态图。
特点 | 动态图 | 静态图 |
---|---|---|
展示方式 | 展示数据随时间或状态的变化过程 | 仅展示数据的单一状态或快照 |
互动性 | 动画可以增加互动性,用户可以暂停、回放等 | 无互动性,用户只能观察图表的固定内容 |
信息传达 | 更适合展示变化趋势、过程或时间序列数据 | 更适合展示固定信息和数据的全貌 |
可视化复杂性 | 可以展示多维数据或复杂变化,易于理解动态关系 | 在展示复杂变化和多维数据时可能不够直观 |
制作难度 | 通常制作难度较高,需要考虑动画效果 | 制作相对简单,通常只需绘制一次 |
文件格式 | 通常导出为GIF、MP4等格式 | 通常导出为PNG、JPEG、PDF等静态格式 |
文件大小 | 动态图由于多帧的原因,文件大小通常较大 | 文件较小,适合用于打印和静态展示 |
观众体验 | 提供更丰富的视觉体验,能够引导观众关注变化 | 观众体验较为单一,但更适合快速浏览 |
适用场景 | 适用于演示、报告或需要展示变化趋势的情境 | 适用于出版物、报告和不需变化展示的情境 |
下面的代码中,我们先导入了必要的R包:ggplot2
用于创建基本的图形,gganimate
用于将静态图形转换为动画,gapminder
提供了示例数据集,而ggrepel
用于优化标签的显示。
另外,演示的这一份数据来自于gapminder
包,包含了各国在不同年份的人均GDP、寿命预期、人口和所属大洲等信息。
# 安装必要的包
install.packages("ggplot2")
install.packages("gganimate")
install.packages("gapminder")
install.packages("gifski")
install.packages("ggrepel")
# 加载包
library(ggplot2)
library(gganimate)
library(gapminder)
library(ggrepel)
# 使用gapminder数据集
data <- gapminder
然后,我们通过ggplot2
的ggplot
函数构建了一个基础的散点图。在这个图中,x轴表示人均GDP(对数尺度),y轴表示寿命预期,点的大小反映了国家的人口大小,点的颜色表示不同的大陆。
为了增强图形的表现力,我们使用了geom_point
来绘制散点图,并通过geom_smooth
添加了每个大陆的平滑曲线。
这些平滑曲线使用LOESS回归方法绘制,帮助我们观察各大陆的趋势变化。geom_text_repel
则用于在图中添加国家名称的标签,标签的显示经过优化,避免了重叠和遮挡,使得每个国家的名称都能清晰地展示出来。
# 创建散点图,展示各个国家的人均GDP与人均寿命的关系,按年份分组
p <- ggplot(data, aes(x = gdpPercap, y = lifeExp, size = pop, color = continent, label = country)) +
geom_point(alpha = 0.7, show.legend = FALSE) + # 绘制散点图
geom_smooth(aes(group = continent), method = "loess", se = FALSE, linetype = "dashed", size = 1) + # 添加平滑曲线
geom_text_repel(aes(group = year), size = 3, show.legend = FALSE) + # 添加国家名称标签
scale_x_log10() + # 使用对数坐标轴
scale_color_manual(values = c("Asia" = "#FF5733", "Europe" = "#33FF57", "Africa" = "#3357FF",
"Americas" = "#F3FF33", "Oceania" = "#FF33A1")) + # 自定义颜色
scale_size(range = c(2, 12)) + # 自定义大小范围
labs(title = 'Year: {frame_time}', x = 'GDP per capita (log scale)', y = 'Life Expectancy',
caption = 'Source: Gapminder') +
theme_minimal() + # 使用简约主题
theme(plot.title = element_text(size = 22, face = "bold", hjust = 0.5),
axis.title = element_text(size = 16),
axis.text = element_text(size = 12))
其次,动画的制作通过gganimate
的transition_time
函数实现,这个函数使得图形随年份变化而动态更新。为了使动画效果更加平滑,我们使用了ease_aes('cubic-in-out')
来控制过渡效果的平滑程度。
此外,为了使点和标签的出现和消失更具视觉冲击力,我们添加了enter_fade()
和exit_fade()
动画效果,使得数据点和标签在动画中逐渐出现和消失,增强了动画的流畅性和视觉吸引力。在图形的美化方面,我们自定义了颜色方案以区分不同大陆,使用了scale_color_manual
函数指定每个大陆的颜色,这样可以更直观地展示大陆间的差异。点的大小范围也进行了调整,确保在不同人口规模的国家间有明显的视觉差异。
最后,通过theme_minimal
和theme
函数,我们选择了简约主题,并对标题、轴标签和文本进行了样式调整,使得图形更加整洁和易于阅读。生成的动画将保存为GIF文件,这样便可以方便地分享和展示图形数据。
# 使用gganimate来制作动画
anim <- p +
transition_time(year) + # 随时间变化
ease_aes('cubic-in-out') + # 使用更平滑的动画过渡效果
enter_fade() + # 添加进入动画
exit_fade() # 添加退出动画
# 保存动画为GIF文件
anim_save("enhanced_gapminder_animation.gif", anim)
总之,这段代码通过综合使用ggplot2
、gganimate
和ggrepel
等多个R包的功能,创建了一个展示人均GDP与人均寿命关系的动态动画图。
动态图的截图之一
~~~~~~~
市面上的 R 语言培训班和书籍(包括网络上的文章或视频),由于受限于培训时间或书籍篇幅,往往难以深入探讨 R 语言在数据科学或人工智能中的具体应用场景,内容泛泛而谈,最终无法真正解决实际工作中的问题。同时,它们也缺乏针对医药领域的深度结合与讨论。为了解决这些痛点,我们推出了《用 R 探索医药数据科学》专栏。该专栏将持续更新,不仅为您提供系统化的学习内容,更致力于成为您掌握最新、最全医药数据科学技术的得力助手。
- 每篇文章篇幅在5000字 至9000字之间。
- 内容涵盖试验统计、预测模型、科研绘图、数据库、机器学习等热点领域。
《用 R 探索医药数据科学》专栏目录(截止11月份23日)
第一章:认识数据科学和R
1章1节:医药数据科学的历程和发展,用R语言探索数据科学(更新20241029)-CSDN博客
1章2节:机器学习、统计学与ChatGPT的概述,与R语言的相关 (更新20241229)_ai、chatgpt和机器学习什么关系-CSDN博客
1章3节:R 语言的产生与发展轨迹(更新2024/08/14)-CSDN博客
1章4节:数据可视化, R 语言的静态绘图和 Shiny 的交互可视化演示(更新20240814)-CSDN博客
第二章:R的安装和数据读取
2章1节:R和RStudio的下载和安装(Windows 和 Mac)-CSDN博客
2章2节:RStudio 四大区应用全解,兼谈 R 的代码规范与相关文件展示_rstudio的console和terminal-CSDN博客
2章3节:RStudio的高效使用技巧,自定义RStudio环境(更新20241023)_rstudio如何使用-CSDN博客
2章4节:用RStudio做项目管理,静态图和动态图的演示,感受ggplot2的魅力-CSDN博客
2章5节:详解R的扩展包管理(从模糊安装到自动更新)及工作目录和工作空间的设置(更新20241030 )-CSDN博客
2章6节:R的数据集读取和利用,如何高效地直接复制黏贴数据到R(20240807 )_r语言 复制数据集-CSDN博客
2章7节:读写RDS,CSV,TXT,Excel,SPSS、SAS、Stata、Minitab等的数据文件(更新20240807)_r语言读取rds文件-CSDN博客
2章8节:一文学会 R Markdown 的文档核心操作,切记文末有R资源的分享_r markdown文件(.rmd)-CSDN博客
2章9节:认识R与数据库连接和网络爬虫,学会在R中使用SQL语言_sql和r语言-CSDN博客
2章10节:用 R 直接下载并分析 NHANES 数据库的数据,文末示例自创便捷下载函数(更新20240807)_nhanes数据分析-CSDN博客
第三章:认识数据
3章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算-CSDN博客
3章2节:继续讲R的数据结构,数组、数据框和列表-CSDN博客
3章3节:R的赋值操作与算术运算_r里面的赋值-CSDN博客
第四章:数据的预处理
4章1节:全面了解 R 中的数据预处理,通过 R 基本函数实施数据查阅_r数据预处理-CSDN博客
4章2节:从排序到分组和筛选,通过 R 的 dplyr 扩展包来操作-CSDN博客
4章3节:处理医学类原始数据的重要技巧,R语言中的宽长数据转换,tidyr包的使用指南-CSDN博客
4章4节:临床数据科学中如何用R来进行缺失值的处理_临床生存分析缺失值r语言-CSDN博客
4章5节:数据科学中的缺失值的处理,删除和填补的选择,K最近邻填补法-CSDN博客
4章6节:R的多重填补法中随机回归填补法的应用,MICE包的实际应用和统计与可视化评估-CSDN博客
4章7节:用R做数据重塑,数据去重和数据的匹配-CSDN博客
4章8节:用R做数据重塑,行列命名和数据类型转换-CSDN博客
4章9节:用R做数据重塑,增加变量和赋值修改,和mutate()函数的复杂用法_r语言如何在数据集中添加变量-CSDN博客
4章10节:用R做数据重塑,变体函数应用详解和可视化的数据预处理介绍-CSDN博客
4章11节:用R做数据重塑,数据的特征缩放和特征可视化-CSDN博客
4章12节:R语言中字符串的处理,正则表达式的基础要点和特殊字符-CSDN博客
4章13节:R语言中Stringr扩展包进行字符串的查阅、大小转换和排序-CSDN博客
4章14节:R语言中字符串的处理,提取替换,分割连接和填充插值_r语言替换字符串-CSDN博客
4章15节:字符串处理,提取匹配的相关操作扩展,和Stringr包不同函数的重点介绍和举例-CSDN博客
4章16节:R 语言中日期时间数据的关键处理要点_r语言 时刻数据-CSDN博客
第五章:定量数据的统计描述
5章1节:用R语言进行定量数据的统计描述,文末有众数的自定义函数-CSDN博客
5章2节:离散趋势的描述,文末1个简单函数同时搞定20个结果-CSDN博客
5章3节:在R语言中,从实际应用的角度认识假设检验-CSDN博客
5章4节:从R语言的角度认识正态分布与正态性检验-CSDN博客
5章5节:认识方差和方差齐性检验(三种方法全覆盖)-CSDN博客
5章9节:组间差异的非参数检验,Wilcoxon秩和检验和Kruskal-Wallis检验-CSDN博客
第六章:定性数据的统计描述
6章1节:定性数据的统计描述之列联表,文末有优势比计算介绍-CSDN博客
6章2节:认识birthwt数据集,EpiDisplay和Gmodels扩展包的应用-CSDN博客
6章3节:独立性检验,卡方检验,费希尔精确概率检验和Cochran-Mantel-Haenszel检验-CSDN博客
6章4节:相关关系和连续型变量的Pearson相关分析-CSDN博客
6章5节:分类型变量的Spearman相关分析,偏相关分析和相关图分析-CSDN博客
6章6节:相关图的GGally扩展包,和制表的Tableone扩展包-CSDN博客
第七章:R的传统绘图
7章1节:认识R的传统绘图系统,深度解析plot()函数和par()函数的使用-CSDN博客
7章2节:R基础绘图之散点图、直方图和概率密度图-CSDN博客
7章5节:散点矩阵图,与小提琴图、Cleveland 点图、马赛克图和等高图-CSDN博客
7章6节:用R进行图形的保存与导出,详细的高级图形输出,一文囊括大多数保存的各种问题,和如何批量保存不同情况的图形-CSDN博客
第八章:R的进阶绘图
8章1节:认识 ggplot2 扩展包,深度解析 qplot() 函数的使用-CSDN博客
8章2节:ggplot2绘图之原理逻辑分解,掌握绘图步骤(更新20241104)-CSDN博客
8章3节:ggplot2绘图之内置主题设置全解析(更新20241104)-CSDN博客
8章4节:ggplot2绘图之几何体解析(一),参考线和基准线与分布图和频数图(更新20241104)-CSDN博客
8章5节:ggplot2绘图之几何体解析(二),关系图和时间序列图与误差条和高级图形平滑曲线(更新20241104)-CSDN博客
8章6节:坐标轴须图和带状图(更新20241107)_维恩图 约翰·维恩-CSDN博客
8章7节:平行坐标图和小提琴图_r语言parallelplot绘制平行坐标图-CSDN博客
8章9节:词云图和树图(更新20241106)_echarts 可以生成词云图吗-CSDN博客
8章10节:维恩图和UpSet图_ae做柱状图动态图-CSDN博客
8章11节:R的地理图绘制(更新20241104)-CSDN博客
8章12节:三维图,由三维散点图起步,引入回归模型平面,到复杂坐标和渐变色的三维曲面图(更新20241107)-CSDN博客
8章13节:网络图(知识图谱)绘制的深度解析(更新20241109)-CSDN博客
8章15节:让 ggplot2 绘图进行顶级科研杂志的配色(更新20241118)
第九章:临床试验的统计
9章4节:两组例数相同的均数比较的样本量估计和绘制功效曲线-CSDN博客
9章5节:两组的例数不等的均数比较的样本量估计和可视化-CSDN博客
9章6节:自身配对设计的均数比较临床试验的样本量估计和可视化-CSDN博客
9章8节: 两、三组试验组率比较的样本量估算和可视化-CSDN博客
9章9节:试验的随机分组认识,用R做简单随机化-CSDN博客
9章11节:用R实现区组随机化和置换区组随机化-CSDN博客
9章12节:动态随机化方法介绍,和用R绘制随机化卡片-CSDN博客
第十章:Meta分析攻略
10章1节:认识循证医学中的Meta分析,并予代码演示分析绘图-CSDN博客
10章2节:Meta分析的7大步骤的扼要解读-CSDN博客
10章3节:二分类变量的Meta分析模型,分析公式构建和结果解读-CSDN博客
10章4节:二分类变量的Meta分析模型,绘制漏斗图和应用剪补法,最后绘制和解读轮廓增强漏斗图-CSDN博客
10章5节:二分类变量的Meta分析模型,敏感性分析和亚组分析,绘制森林图-CSDN博客
10章6节:连续型变量的Meta分析和可视化分析全解-CSDN博客
第十一章:主成分分析
11章2节:深度讲解用R进行主成分分析(中)-CSDN博客
11章3节:深度讲解用R进行主成分分析(下)-CSDN博客
第十二章:常见类型回归分析
12章4节:深度解读构建回归模型表达式的九个关键符号-CSDN博客
12章7节:构建因变量为分类变量的二分类Logistic回归模型-CSDN博客
12章8节:详解不同逻辑回归模型的比较,和如何进行变量优化-CSDN博客
12章9节:深度讲解有序多分类Logistic回归模型的分析-CSDN博客
12章10节:条件Logistic回归模型的分析-CSDN博客
第十三章:生存分析模型
13章4节:认识比例风险模型和Cox比例风险模型,学会从协变量的调整选择最优模型-CSDN博客
13章5节:用逐步回归方法来选择模型协变量,比例风险假定的检验和森林图的绘制-CSDN博客
第十四章:匹配技术应用
14章2节:匹配结果的可视化和匹配后新数据分析-CSDN博客
第十五章:判别和聚类分析
15章2节:线性判别分析预测模型构建评估和可视化演示-CSDN博客
15章4节:K-Means聚类分析的运用,和改进算法的K-Means++-CSDN博客
15章5节:实现k-medoids聚类算法的PAM和CLARA方法-CSDN博客
第十六章:机器学习入门
16章2节:机器学习在临床预测中的应用场景,与临床预测模型的关键步骤解析-CSDN博客
16章3节:详析训练数据集、测试数据集和验证数据集及其划分策略-CSDN博客
16章4节:采用随机抽样法和等比抽样法对数据集进行二份及三份的划分-CSDN博客
16章5节:划分数据的多次随机抽样的Bootstrap法和加权随机抽样法-CSDN博客
16章6节:交叉验证概述与分类,R中K折交叉验证的详细解析-CSDN博客
16章7节:机器学习算法解读,与数值预测回归模型构建-CSDN博客
16章8节:朴素贝叶斯分类预测模型,从构建、解析到实战-CSDN博客
16章9节:认识决策树,构建CART算法的决策树模型-CSDN博客
16章10节:深度解析如何构建随机森林算法预测模型-CSDN博客
16章11节:构建人工神经网络反向传播算法预测模型-CSDN博客
16章12节:认识机器学习的模型评估,掌握数值型数据的模型评估方法-CSDN博客
16章14节:评估和对比预测模型的ROC曲线和AUC值-CSDN博客
16章15节:六大ROC曲线扩展包的对比,和其它评估曲线的绘制-CSDN博客
第十七章:文献计量学
17章2节:文献计量学的国外数据库的数据采集,WOS数据库和PUBMED数据库的文献信息批量下载和分析
17章10节:为构建网络图从文献数据中提取特定信息-CSDN博客
17章12节:耦合网络可视化,从常规网络图到耦合分析聚类图的深度讲解-CSDN博客
17章13节:共被引网络、历史共被引网络和共词网络的可视化-CSDN博客
17章14节:概念结构图,贡献度最高文献因子图和最被引用文献因子图-CSDN博客
17章15节:文献计量学的语义地图和主题演化分析图-CSDN博客
17章16节:PubMed数据库的数据提取和可视化-CSDN博客