gpt4 book ai didi

r - 当 "add = TRUE"时 curve() 不会将曲线添加到我的绘图中

转载 作者:行者123 更新时间:2023-12-02 04:09:59 24 4
gpt4 key购买 nike

我有一个非常简单的问题,但我似乎无法弄清楚。我想在一张图中绘制两个方程。我尝试过 add = TRUE 但这似乎不起作用。

curve(0.044*x+1.638)
curve(0.3438*x+0.5155, add=TRUE)

最佳答案

好吧,实际上,曲线确实有效,但你看不到它。为了解释这一点,我们添加几行代码:

f1 <- function(x) 0.044*x+1.638
f2 <- function(x) 0.3438*x+0.5155
x0 <- seq(0, 1, by = 0.1)

我已通过 f1f2 定义了您的示例函数。我还在 [0,1] 之间选取 11 个采样点进行评估和绘图。为什么是这个范围?因为如果没有通过参数 fromto 进行指定(请参阅 ?curve),curve 将在此范围内绘制图。

现在,让我们看看这个:

>f1(x0)
[1] 1.6380 1.6424 1.6468 1.6512 1.6556 1.6600 1.6644 1.6688 1.6732 1.6776
[11] 1.6820
> f2(x0)
[1] 0.51550 0.54988 0.58426 0.61864 0.65302 0.68740 0.72178 0.75616 0.79054
[10] 0.82492 0.85930

f1的功能值(value)比f2高很多。当您第一次调用curve绘制f1时,它会修复ylim以大致显示f1(的范围) x)。因此,当您添加f2(x)时,它将不会在此ylim中看到。

尝试这样做,首先选择共享的ylim:

ylim <- range(c(f1(x0), f2(x0)))
curve(f1, ylim = ylim)
curve(f2, add=TRUE, col = "red")

Plot

此类问题是一个常见的陷阱。当您决定在单个图表上绘制多个对象时,您需要设置适当的 xlimylim 足够大,可以容纳所有物体。不要指望 R 会“即时”调整这些;它不能这样做。绘图范围在绘制第一个绘图时确定。

关于r - 当 "add = TRUE"时 curve() 不会将曲线添加到我的绘图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37198445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com