R语言非ggplot绘图:如何在X轴标记二次函数对称轴的特定X值?
在R基础绘图中标记二次函数对称轴的X轴值
可以通过R基础绘图的axis()或text()函数实现,无需依赖ggplot2。以下是两种常用方案:
方案1:添加自定义X轴刻度标签
先计算对称轴对应的X值,再在X轴对应位置添加带颜色的刻度与标签,和红色对称轴视觉统一:
b1 = 2 b2 = -1 c = 100 # 提前计算对称轴X值,便于复用 axis_x <- -b1/(2*b2) x = -10:10 f <- function(x) { return(c + b1 * x + b2 * x^2) } plot(x, f(x)) # 绘制红色对称轴 abline(v = axis_x, col = "red", lwd = 1, lty = 1) # 在X轴添加自定义刻度标签 axis(1, at = axis_x, labels = as.character(axis_x), col.axis = "red", font = 2)
方案2:直接标注文本说明
如果不想修改原有X轴刻度,可在对称轴对应的X轴位置下方添加文本标注:
b1 = 2 b2 = -1 c = 100 axis_x <- -b1/(2*b2) x = -10:10 f <- function(x) { return(c + b1 * x + b2 * x^2) } plot(x, f(x)) abline(v = axis_x, col = "red", lwd = 1, lty = 1) # 在X轴下方标注对称轴X值 text(x = axis_x, y = par("usr")[3] - 2, labels = paste("x =", axis_x), col = "red", pos = 1)
说明
axis_x:存储对称轴的X值,避免重复计算,提升代码可读性。axis(1, ...):参数1指定操作X轴,at定义刻度位置,col.axis设置标签颜色与对称轴一致,font=2让标签加粗更醒目。text(...):par("usr")[3]获取绘图区域的底部Y坐标,减2让文本位于X轴下方,pos=1确保文本在指定点的正下方,避免与函数图像重叠。
内容的提问来源于stack exchange,提问作者jck21
相关产品推荐
相关产品推荐

