4.1 基础绘图系统:白手起家画证据图


4.1 基础绘图系统:白手起家画证据图

本节摘要:R 自带的 graphics 包无需安装任何东西,plot、hist、boxplot 三个函数覆盖单变量与双变量的快速检视。本节用它们给 mpg 数据集做体检,讲清 par 面板设置与通用图形参数,为下一节的图形语法做参照。

三件快审工具

data(mpg) # 234 款车的油耗案卷 # 双变量快审:排量对高速油耗的散点 plot(hwy ~ displ, data = mpg, main = "排量与高速油耗", xlab = "排量(升)", ylab = "高速油耗(英里每加仑)") # 单变量分布:城市油耗直方图 hist(mpg$cty, breaks = 15, col = "skyblue", main = "城市油耗分布", xlab = "英里每加仑") # 组间对比:三种驱动方式各自的油耗箱线 boxplot(hwy ~ drv, data = mpg, col = "lightgreen", names = c("四轮", "前轮", "后轮"), main = "驱动方式与高速油耗")

三条命令、三种角度:散点看关系、直方看分布、箱线看组差。开卷一上来把这三种图各跑一遍,是快速体检的标配动作。

箱线图在第 2 章已经当离群值探测器用过;这里它换了个身份——组间对比。同一张图在不同侦查阶段扮演不同角色,这正是基础绘图的灵活之处。

公共参数与拼版

# 多图拼版:一行两列的画布 par(mfrow = c(1, 2)) hist(mpg$cty, main = "城市油耗") hist(mpg$hwy, main = "高速油耗") par(mfrow = c(1, 1)) # 用完复位,别污染后续绘图 # 通用参数速记 # pch 点型 / col 颜色 / lwd 线宽 / cex 点大小 / main 标题 / las 刻度方向

基础绘图三种快审图的分工

基础绘图三种快审图的分工

💡 关键直觉:基础绘图的定位是"侦查用草稿图"——快、够用、不讲究。要进结案报告的正式证据图,值得花力气换 ggplot2 重画;草稿与定稿的分工,正是两套绘图系统的分工。

完整演练:油耗案卷的首次图检

把三件工具连起来,对 mpg 做一轮完整体检,每步带上"看什么"的判读:

data(mpg) # 第一步:直方图看主变量分布——有没有双峰? hist(mpg$hwy, breaks = 20, main = "高速油耗分布", xlab = "英里每加仑") # 判读:主体在 25 上下的单峰,右尾拖到 44 一带——高油耗车型是少数派 # 第二步:按类别拆开的箱线图——组间有没有台阶? boxplot(hwy ~ class, data = mpg, las = 2, main = "车型类别与高速油耗") # las = 2 让纵排类别名横过来,长类别名不挤成一团 # 判读:紧凑型中位数明显高于皮卡与 SUV,组差肉眼可见 # 第三步:散点图找关系——排量越大油耗越低?(单位是每加仑英里,越高越省油) plot(hwy ~ displ, data = mpg, pch = 19, cex = 0.7, main = "排量与高速油耗") # 判读:整体负相关,但同一排量处上下两撮点——第一桩疑点,留给下一节

三步走完,案情简报已经成形:分布近似单峰右偏、类别间有台阶、排量与油耗负相关但含异常结构。这就是"图先开口"——任何统计检验都还没有登场,图已经把值得查的方向指出来了。

进阶手法:点群分层与参考线

基础绘图虽是草稿工具,也有几手高频技巧值得练熟:

# 手法一:按条件给点分色(先画一组,再用 points 补画另一组) d1 <- subset(mpg, drv == "f"); d2 <- subset(mpg, drv != "f") plot(hwy ~ displ, data = d1, pch = 19, col = "steelblue", xlim = range(mpg$displ), ylim = range(mpg$hwy)) points(hwy ~ displ, data = d2, pch = 17, col = "tomato") legend("topright", legend = c("前轮", "其他"), pch = c(19, 17), col = c("steelblue", "tomato")) # 注意首画时用 xlim、ylim 预留全量范围,否则补画的点会出界被裁掉 # 手法二:参考线——均值线、阈值线让判读有锚点 abline(h = median(mpg$hwy), lty = 2, col = "gray40") text(5.5, median(mpg$hwy) + 0.5, "中位数", cex = 0.8)

手法一里"先定范围再补画"是基础绘图最经典的坑:plot 每次调用都会重开坐标系统,两次分别画两组点而没统一范围,第二组会整层消失。

保存与复用

草稿图有时也要留档。保存动作用 png 设备一对开关:

png("hwy_check.png", width = 800, height = 600) # 开闸 plot(hwy ~ displ, data = mpg) dev.off() # 关闸,文件落盘

口诀是"有开必关":忘了 dev.off,后续所有图都默默写进这个文件,Plots 面板却看似失灵——又一条无声故障。RStudio 里也可用 Export 按钮手动导出,但脚本里的 png 设备才可复现。

三函数选择速查

再压一张决策小抄,新数据到手按问句走:想看两个数量变量什么关系,plot 散点起步;想看一个变量怎么分布,hist 直方起步;想看一个数量变量在几个类别间有无台阶,boxplot 起步。三问分别对应关系、分布、组差——恰好也是后续 ggplot2 里 x 加 y、单 x、x 加 fill 三种映射的雏形,本章用基础绘图养成的"三问习惯",下一节会原样翻译成图形语法。

本节要点回顾

  • 三函数三角度:plot 关系、hist 分布、boxplot 组差
  • 公式写法 hwy ~ displ:波浪号读作"随……而变"
  • par 拼版要复位:mfrow 改完不还原,会坑到下一张图
  • 通用参数五个:pch、col、lwd、cex、main
  • 草稿与定稿分工:基础绘图快审,ggplot2 定稿
  • 保存有开必关:png 设备配对 dev.off,脚本化导出才可复现

顺带一句体例说明:本章刻意让同一份数据先过基础绘图再进图形语法,两套工具的输出并排摆着,你才能真切感到"快"与"可控"各自的价值——这不是怀旧,是给下一节的对比打地基。


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