如何将R图形设备设置为坐标范围(0,1)的二维可绘制画布?
R 生成占满设备的(0,1)×(0,1)可绘制画布方案
核心实现代码
# 1. 新建图形设备 dev.new() # 2. 移除所有内外边距,让绘图区占满整个设备 par(mar = c(0, 0, 0, 0), oma = c(0, 0, 0, 0)) # 3. 初始化绘图环境 plot.new() # 4. 固定用户坐标范围为(0,1)×(0,1) par(usr = c(0, 1, 0, 1))
也可以将第4步替换为plot.window(xlim = c(0,1), ylim = c(0,1)),效果完全一致。
效果验证
运行上述代码后执行测试命令:
# 左下角生成大圆点,仅显示1/4部分 points(0, 0, pch = 16, cex = 5) # 右上角生成大圆点,仅显示1/4部分 points(1, 1, pch = 16, cex = 5)
原理解释
直接调用plot.new()默认存在内边距:R的par参数中mar默认值为c(5,4,4,2) + 0.1,oma默认全为0,会在绘图区外围预留坐标轴、标题的空间,因此(0,0)和(1,1)不会落在设备角落。将mar和oma都设置为0后,绘图区域会完全铺满整个图形设备,再通过usr参数手动指定用户坐标范围,即可满足需求。
内容的提问来源于stack exchange,提问作者Spacedman
相关产品推荐
相关产品推荐

