R语言基础绘图:5步实现厘米直尺可视化
本文详细介绍如何使用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语言绘图与基础几何操作的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













