在 R 中绘制曲线时,一条曲线被切断,不知道为什么
When plotting a curve in R, a piece of the curve gets cut off, not sure why
我正在尝试绘制这个公式。当 x 从右边接近 0 时,y 应该接近无穷大,所以我的曲线应该向上接近 y 轴。相反,它在 y=23 左右被切断。
my_formula = function(x){7.9*x^(-0.5)-1.3}
curve(my_formula,col="red",from=0 ,to=13, xlim=c(0,13),ylim=c(0,50),axes=T, xlab=NA, ylab=NA)
我试着玩 from= parameter
,实际上我得到了我需要的东西
put from=-4.8
但我不知道为什么会这样。事实上 x 不会小于 0,from/to 应该代表 x 值的范围,是吗?如果有人能向我解释,那就太棒了!谢谢!
默认情况下,curve
仅选择 (from, to)
范围内的 101 个 x 值,由 n
参数的默认值设置。在您的情况下,这意味着没有很多值足够接近 0 来显示函数的完整行为。增加用 n=500
之类的东西绘制的值的数量有助于:
curve(my_formula,col="red",from=0 ,to=13,
xlim=c(0,13),ylim=c(0,50),axes=T, xlab=NA, ylab=NA,
n=500)
这主要是因为 my_formula(0)
是 Inf
:
所以在 curve
中绘制 from=0, to=13
意味着您的前 2 个值是默认值(@Marius 注释为 101 点):
# x
seq(0, 13, length.out=101)[1:2]
#[1] 0.00 0.13
# y
my_formula(seq(0, 13, length.out=101)[1:2])
#[1] Inf 20.61066
并且 R 不会绘制无限值来连接从第一个点到第二个点的线。
如果您在系统上的 x 轴上尽可能接近 0
,则可以正常工作。例如:
curve(my_formula, col="red", xlim=c(0 + .Machine$double.eps, 13), ylim=c(0,50))
我正在尝试绘制这个公式。当 x 从右边接近 0 时,y 应该接近无穷大,所以我的曲线应该向上接近 y 轴。相反,它在 y=23 左右被切断。
my_formula = function(x){7.9*x^(-0.5)-1.3}
curve(my_formula,col="red",from=0 ,to=13, xlim=c(0,13),ylim=c(0,50),axes=T, xlab=NA, ylab=NA)
我试着玩 from= parameter
,实际上我得到了我需要的东西
put from=-4.8
但我不知道为什么会这样。事实上 x 不会小于 0,from/to 应该代表 x 值的范围,是吗?如果有人能向我解释,那就太棒了!谢谢!
默认情况下,curve
仅选择 (from, to)
范围内的 101 个 x 值,由 n
参数的默认值设置。在您的情况下,这意味着没有很多值足够接近 0 来显示函数的完整行为。增加用 n=500
之类的东西绘制的值的数量有助于:
curve(my_formula,col="red",from=0 ,to=13,
xlim=c(0,13),ylim=c(0,50),axes=T, xlab=NA, ylab=NA,
n=500)
这主要是因为 my_formula(0)
是 Inf
:
所以在 curve
中绘制 from=0, to=13
意味着您的前 2 个值是默认值(@Marius 注释为 101 点):
# x
seq(0, 13, length.out=101)[1:2]
#[1] 0.00 0.13
# y
my_formula(seq(0, 13, length.out=101)[1:2])
#[1] Inf 20.61066
并且 R 不会绘制无限值来连接从第一个点到第二个点的线。
如果您在系统上的 x 轴上尽可能接近 0
,则可以正常工作。例如:
curve(my_formula, col="red", xlim=c(0 + .Machine$double.eps, 13), ylim=c(0,50))