如何在Base R的原点位置绘制单个斜体大写O符号?
在R绘图的坐标原点添加斜体大写字母O的解决方案
嘿,我帮你搞定在原点画斜体大写O的问题啦!看了你的基础绘图代码,只要加几行就能实现需求~
在R里要在指定位置添加文本,最常用的就是text()函数,要实现斜体效果有两种简单的方式:
方法1:用表达式生成斜体文本
R的expression()函数支持排版语法,italic(O)就能直接生成斜体的大写O。另外要注意调整文本对齐方式,避免和坐标轴重叠,用adj参数可以精准控制对齐点:
par(mar = c(6, 6, 4, 3) + 0.1, mgp = c(4, 1, 0)) x <- c(0, 10) y <- c(0, 10) plot(x, y, axes = FALSE, xaxs = "i", yaxs = "i", type = "n", ylab = "") mtext(expression(y), 2, 4, las = 1) axis(1, 0:10, c("", 1:10)) axis(2, 0:10, c("", 1:10), las = 1) # 在原点添加斜体O,调整对齐避免被坐标轴遮挡 text(x = 0, y = 0, labels = expression(italic(O)), adj = c(1.1, 1.1))
方法2:用font参数设置斜体
R绘图里font=3代表斜体字体,直接传入这个参数也能快速实现斜体效果:
par(mar = c(6, 6, 4, 3) + 0.1, mgp = c(4, 1, 0)) x <- c(0, 10) y <- c(0, 10) plot(x, y, axes = FALSE, xaxs = "i", yaxs = "i", type = "n", ylab = "") mtext(expression(y), 2, 4, las = 1) axis(1, 0:10, c("", 1:10)) axis(2, 0:10, c("", 1:10), las = 1) # 用font参数直接设置斜体 text(x = 0, y = 0, labels = "O", font = 3, adj = c(1.1, 1.1))
小提示
adj=c(1.1,1.1)是让文本的右下角稍微偏离原点(默认adj=c(0.5,0.5)是中心对齐),这样可以避免文本被坐标轴挡住,你可以根据自己的绘图需求调整这个数值哦~
内容的提问来源于stack exchange,提问作者Frans Rodenburg
相关产品推荐
相关产品推荐

