4.3 扩展可视化包:专题图表工具箱


4.3 扩展可视化包:专题图表工具箱

本节摘要:ggplot2 覆盖日常八成需求,剩下两成靠扩展包补位。本节过一遍四个高频专题工具——相关系数矩阵的 corrplot、地图着色的地图包、交互图的 plotly、拼图的 patchwork——并讲清"何时值得引入新包"的取舍标准。

工具箱巡礼

相关系数矩阵:corrplot。 变量一多,两两相关的全景只有矩阵图能交代:

install.packages("corrplot") library(corrplot) m <- cor(mtcars[, c("mpg", "disp", "hp", "wt", "qsec")]) corrplot(m, method = "ellipse", type = "upper", addCoef.col = "black", tl.col = "black")

椭圆越扁、颜色越深,相关性越强;方向由颜色冷暖区分。一图在手,选模型的候选变量与共线性嫌疑一目了然——第 6 章建模前就该先看这张图。

交互探索:plotly。 结案报告是静态的,但侦查阶段能把图拿在手里转:

library(plotly) p <- ggplot(mpg, aes(x = displ, y = hwy, color = drv)) + geom_point() ggplotly(p) # 悬停看点、框选缩放

拼图:patchwork。 多张子图按版面逻辑组合:

library(patchwork) p1 <- ggplot(mpg, aes(drv, hwy)) + geom_boxplot() p2 <- ggplot(mpg, aes(cty)) + geom_histogram(bins = 20) p1 + p2 # 加号拼排;p1 / p2 上下排;加 plot_annotation 定总标题

地图着色:地图类扩展包。 国家发展档案案里"各国寿命数据按地区上色"这类需求,ggplot2 配合地图数据可以画分级统计图;对精度要求不高的快速版本,包自带的简化世界地图数据足够用。

选型判断表

需求 首选工具 引入代价
日常统计图 ggplot2 已是标配
多变量相关全景 corrplot 低,一条命令
报告多图排版 patchwork 低,加号即用
探索式交互 plotly 中,对象较大
地理着色 地图扩展包 高,需理解地图数据结构

专题工具能力环

专题工具能力环

💡 关键直觉:每引入一个扩展包,就多一分学习与维护成本。判断标准只有一条——它解决的问题出现的频率够不够高。一年画一次地图,临时学比常备工具箱划算。

实战演练:给油耗案配一张结案版图墙

用 patchwork 把本章产出的四张证据图拼成一张"结案图墙",重现完整推理链:

library(ggplot2); library(patchwork) p1 <- ggplot(mpg, aes(displ, hwy)) + geom_point(alpha = 0.5) + labs(title = "疑点:同一排量两撮点") p2 <- ggplot(mpg, aes(drv, hwy)) + geom_boxplot() + labs(title = "组差:驱动方式分层") p3 <- ggplot(mpg, aes(displ, hwy, color = drv)) + geom_smooth(method = "lm", se = FALSE) + labs(title = "分组后趋势各自成立") p4 <- ggplot(mpg, aes(cty)) + geom_histogram(bins = 20) + labs(title = "城市油耗分布") (p1 | p2) / (p3 | p4) + plot_annotation( title = "油耗指纹案结案图墙", tag_levels = "A" # 每格自动编号 A B C D,正文引用有锚点 )

| 左右排、/ 上下排,组合优先级与四则运算一样可加括号控制。tag_levels 自动打出的编号让报告正文可以写"见图 C"——多图报告的可读性一半靠这个细节。

corrplot 判读进阶与一个陷阱

library(corrplot) m <- cor(mtcars[, c("mpg", "disp", "hp", "wt", "drat")]) # 两步走:先椭圆看形,再数字钉值 corrplot(m, method = "ellipse", type = "upper") corrplot(m, method = "number", type = "lower", number.cex = 0.7, col = "black", cl.pos = "n") # 陷阱演示:含缺失值时 cor 会整对返回 NA mtcars2 <- mtcars; mtcars2$mpg[1:3] <- NA cor(mtcars2$mpg, mtcars2$wt) # NA cor(mtcars2$mpg, mtcars2$wt, use = "complete.obs") # 正常出数

上下三角分开放两种 method,形与值互补,是建模前排查共线性的标准用法。陷阱段提醒:相关矩阵对缺失极其敏感,use 参数不指定,半个 NA 就让一格变白。另外记住相关只测线性关系,散点呈弯月形时相关数可能接近零——矩阵图与散点图要互相印证,不能只信一格数字。

何时不该用图

可视化不是万能推理器,三种场景图反而误导:样本量极小时(每组三五点),任何"形状"都可能是噪声,这时该回到第 5 章的检验;组间均值差异被大方差淹没时,箱线图看着重叠,检验却能分出显著,图的直觉要靠统计兜底;坐标被裁剪或 y 轴不从零起的柱状图,视觉结论与数据结论可以完全相反——图的诚实性最终靠绘图者的规范保障。

本节要点回顾

  • corrplot 相关矩阵:建模前的共线性排查哨
  • patchwork 加号拼图:多子图报告的标准排法
  • plotly 交互:侦查探索用,正式报告通常仍回静态图
  • 地图包高代价:数据结构与坐标系统都要另学一层
  • 按频率引包:低频需求临时学,高频需求才常备

一个落地建议:把这节当"抽屉"而不是"课表"——corrplot 与 patchwork 值得现在就装上练一遍,因为建模与报告立刻用得到;plotly 与地图包等到具体案子出现再学不迟。抽屉里的工具认得名字、知道它能干什么,比样样精通更现实。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U