R语言基础绘图:5步实现厘米直尺可视化

周予安
周予安
发布时间:2026-10-16 | 6人浏览过
原创

本文详细介绍如何使用R语言的基础绘图函数从零构建一把精确到毫米的厘米直尺。通过设定缩放单位、创建空白画布、叠加灰色阴影、绘制白色主体,并利用线段与文本函数精准标注刻度线与数值,最终完成可视化的直尺效果。

设置坐标系与基础参数

在开始绘图前,我们需要明确绘图的逻辑尺度。由于屏幕像素与实际物理尺寸无直接对应关系,我们定义两个缩放系数 xcm 和 ycm,用于将逻辑上的“1厘米”映射到绘图坐标系的相对位置上。这有助于后续统一调整刻度的粗细与间距。

xcm <- 0.07
ycm <- 0.07

第1步:初始化空白绘图区域

首先调用 plot 函数创建一个空的绘图框架。这一步的目的不是展示数据点,而是确定最终的画布边界与纵横比,防止图形被拉伸变形。设置 type = "n" 以隐藏坐标轴、标题及注释,为后续自定义图形提供干净的底色。

plot(0:1, 0:1, type = "n", axes = F, ann = F)

第2步:添加直尺投影(阴影)

为了让直尺具有立体感,我们在其下方叠加一个浅灰色的矩形作为阴影。利用 rect 函数绘制时,通过微调坐标值(如X轴增加0.2倍单位宽度,Y轴向下偏移0.2倍单位高度),使阴影自然落在直尺右下角。参数 border = NA 确保阴影边缘平滑无框线。

rect(0 + 0.2*xcm, 0 - 0.2*ycm, 
     0.95 + 0.2*xcm, 0.15 - 0.2*ycm, 
     col="gray", border = NA)

第3步:绘制直尺实体背景

接下来,在同一坐标系中覆盖一个白色的实心矩形,代表直尺的本体。其尺寸略小于或等于阴影区域的外轮廓,确保视觉上的对齐。此步骤确立了直尺的白色底板效果。

rect(0, 0, 0.95, 0.15, col = "white")

第4步:生成精确刻度线

这是核心步骤。利用 segments 函数批量绘制短线段。逻辑如下:

  • X轴坐标:使用 seq(1,11,0.1)*xcm 生成从0.1到11.0共101个均匀分布的点,对应每一毫米。
  • Y轴高度:构造向量 c(rep(c(0.5, rep(0.25,4), 0.35,rep(0.25,4)), 10))。通过重复模式区分整厘米长线(0.5)、半厘米中长线(0.35)以及其余短刻度(0.25)。每10个刻度为一组,循环10次以覆盖0-10厘米的范围。
segments(seq(1,11,0.1)*xcm, 0, seq(1,11,0.1)*xcm,
         c(rep(c(0.5, rep(0.25,4), 0.35,rep(0.25,4)), 10), 0.5)*ycm
)

第5步:标注数值与单位

最后,使用 text 函数添加文字标签。adj = c(0.5, 0) 将数字居中对齐于对应的长刻度线上方。随后单独标注单位“cm”,放置在最右侧适当位置。

# 标注0到10的整数刻度
text(1:11*xcm, 0.6*ycm, 0:10, adj = c(0.5, 0))
# 标注单位
text(11.3*xcm, 0.6*ycm, "cm", adj = c(0, 0))

总结

本案例完整演示了如何利用 R 语言底层的 plot, rect, segments 和 text 组合绘制出带有阴影效果的标准化直尺。掌握坐标换算与几何图形的堆叠技巧,可在此基础上扩展绘制更复杂的工程图表。以上就是R语言绘制尺子的详细内容,更多关于R语言绘图与基础几何操作的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表