内容提要
本讲座介绍数据可视化,重点讲解R语言ggplot2的图形语法:先整理数据,将数据列映射到坐标、颜色、大小等视觉属性,再叠加几何对象、分面、坐标系和标度,逐层构建复杂图形。以纽约航班数据为例,发现夏季和圣诞延误高、延误随一天呈指数累积、风向与延误相关。最后实操RNA测序项目:经质量控制、归一化、对数变换、PCA、UMAP聚类并结合文献标记细胞类型,强调数据清洗与迭代验证的重要性。
延伸解读
图形语法:从“找函数”到“搭积木”
传统绘图需要先想好图形名称再找对应函数,而ggplot2采用图形语法,将图形拆解为数据、映射、几何对象、分面、坐标系和标度等组件,用“+”逐层叠加。这种思路让复杂图形像搭积木一样构建,无需记忆大量函数名,也更容易调整和复用。
数据清洗是可视化的前提
讲座强调,在绘图前必须将数据整理成“整洁”格式:每列是一个变量,每行是一个观测。这样列操作在编程语言中高度优化,便于后续分组、汇总和映射。实际数据常来自实验合作者,格式混乱,因此清洗和整理是数据科学流程中不可或缺的第一步。
从航班延误看可视化如何揭示模式
以纽约航班数据为例,通过将月份、小时、机场、航空公司等映射到坐标、颜色、分面等属性,可以直观发现夏季和圣诞延误较高、延误随一天呈指数累积、风向与延误相关等模式。这些洞察仅靠数值计算难以获得,说明合适的可视化能有效呈现高维数据中的结构。
统计计算与模型拟合的便捷性
ggplot2支持在绘图时直接进行统计汇总,如计算均值、自助法置信区间、分箱、插值以及线性/非线性拟合。这省去了手动计算和整理结果的步骤,但讲座也提醒,大数据中容易找到看似显著却无实际意义的模式,因此对统计结果需保持怀疑并检查其合理性。
Q&A
ggplot2的图形语法是什么?
ggplot2的图形语法是一种通过规则逐步构建可视化的方法,不需要记住各种图形的名称。它基于Leland Wilkinson提出的图形语法,在R中实现为ggplot2包,在Python中类似的有plotnine包。
使用ggplot2绘图的基本步骤有哪些?
基本步骤包括:首先准备整洁的数据表,然后使用ggplot()函数指定数据和美学映射(如x轴、y轴、颜色、大小等对应哪些列),接着添加几何对象(如点、线、条形等),还可以添加分面、坐标系、标度等。这些组件通过加号连接,逐步构建复杂图形。
在纽约航班数据中发现了哪些延误模式?
通过可视化发现:夏季月份和圣诞节期间延误较高;延误随一天中的时间呈指数累积;不同机场和航空公司的延误情况不同,例如纽瓦克机场在三月有异常,美国航空在三月也有问题;此外,延误与温度可能相关,但可能与假期人数增加混淆。
ggplot2中的分面(facet)有什么作用?如何使用?
分面用于将数据分成多个子图,根据一个或多个分类变量展示。使用facet_wrap()或facet_grid()函数,通过公式指定分面变量,例如facet_wrap(~origin)会为每个origin值生成一个子图并排列;facet_grid(origin ~ carrier)则生成网格状子图。
在ggplot2中如何添加统计摘要和误差条?
可以使用统计摘要函数(如stat_summary())在绘图时自动计算均值、置信区间等。例如,指定fun.data = mean_cl_boot可以计算自举置信区间,并用误差条几何对象(如geom_errorbar())可视化。对于连续变量,可以使用分箱(binning)来汇总数据。
数据可视化在RNA测序项目中有哪些应用?
在RNA测序项目中,数据可视化用于质量控制、归一化、对数变换、PCA和UMAP聚类,并结合文献标记细胞类型。强调数据清洗和迭代验证的重要性,通过可视化检查数据质量和分析结果。