如何在R语言的同一张图表中绘制两条不同的函数曲线
解决方法
R默认每次调用plot()函数都会新建独立绘图窗口,要将两个函数曲线合并在同一张图中,需要提前配置坐标轴范围,并在绘制第二个函数时指定叠加参数,具体实现如下:
可用代码示例
f1 = function(x1){ return (sqrt(64-x1^2)) } f2 = function(x2){ return (cos(x2) - x2) } # 绘制第一个函数,提前设置y轴范围覆盖两个函数的取值区间,自定义颜色方便区分 plot(f1, -5, 1, ylim = c(-2, 8), # 适配f1(y≈6~8)和f2(y≈-1.6~1.6)的取值范围 col = "#2171b5", xlab = "x", ylab = "y", main = "函数曲线合并展示") # 绘制第二个函数,add=TRUE表示叠加在现有画布上 plot(f2, -pi/2, pi/2, add = TRUE, col = "#de2d26") # 添加图例区分两条曲线 legend("topright", legend = c("f1 = sqrt(64 - x²)", "f2 = cos(x) - x"), col = c("#2171b5", "#de2d26"), lty = 1)
关键注意点
- 必须手动指定第一个绘图的
ylim参数:默认第一个plot()只会适配f1的y值区间(约6~8),f2的y值远低于该区间,不设置的话f2会超出画布无法显示 - 第二个函数绘图时必须加
add = TRUE参数,告知R不要新建画布,直接在现有画布上叠加绘制 - 可以自定义线条颜色、粗细、图例等元素,提升图表可读性
内容的提问来源于stack exchange,提问作者kostya ivanov
相关产品推荐
相关产品推荐

