通过软件 R 中一点的线
Line passing through one point in software R
我是 R 的新手。
我正在尝试通过一个点绘制一个正方形和一条直线。这是我写的代码...
plot(c(0, 2), c(0, 2), main="abc", type= "n", xlab = "x", ylab = "y")
rect(0, 0, 1, 1, col=2) #square
m = runif(1, min=0, max=1) #angular coefficient
myLine <- function(x) m*(x-0.5)+0.5 # y = m*(x-0.5)+0.5 --> line through (0.5,0.5)
plot(myLine) #draw myLine
...但它不起作用。你能解释一下我犯了什么错误吗?
提前致谢
当你调用plot()
时,R通常会创建一个全新的情节;默认情况下,它不会将其添加到现有绘图中。还有其他函数,例如 points()
、lines()
和 curve()
将利用现有图。
由于您要添加一个函数,因此您需要使用 curve()
绘制您创建的函数 myLine
。 (如果您想随机选择截距和斜率,则可以使用 abline()
函数)。但是使用您现有的函数,代码应该更像这样
plot(c(0, 2), c(0, 2), main="abc", type= "n", xlab = "x", ylab = "y")
rect(0, 0, 1, 1, col=2) #square
m <- runif(1, min=0, max=1) #angular coefficient
myLine <- function(x) m*(x-0.5)+0.5 # y = m*(x-0.5)+0.5 --> line through (0.5,0.5)
curve(myLine, add=TRUE) #draw myLine
这给了我下面的情节
我是 R 的新手。
我正在尝试通过一个点绘制一个正方形和一条直线。这是我写的代码...
plot(c(0, 2), c(0, 2), main="abc", type= "n", xlab = "x", ylab = "y")
rect(0, 0, 1, 1, col=2) #square
m = runif(1, min=0, max=1) #angular coefficient
myLine <- function(x) m*(x-0.5)+0.5 # y = m*(x-0.5)+0.5 --> line through (0.5,0.5)
plot(myLine) #draw myLine
...但它不起作用。你能解释一下我犯了什么错误吗?
提前致谢
当你调用plot()
时,R通常会创建一个全新的情节;默认情况下,它不会将其添加到现有绘图中。还有其他函数,例如 points()
、lines()
和 curve()
将利用现有图。
由于您要添加一个函数,因此您需要使用 curve()
绘制您创建的函数 myLine
。 (如果您想随机选择截距和斜率,则可以使用 abline()
函数)。但是使用您现有的函数,代码应该更像这样
plot(c(0, 2), c(0, 2), main="abc", type= "n", xlab = "x", ylab = "y")
rect(0, 0, 1, 1, col=2) #square
m <- runif(1, min=0, max=1) #angular coefficient
myLine <- function(x) m*(x-0.5)+0.5 # y = m*(x-0.5)+0.5 --> line through (0.5,0.5)
curve(myLine, add=TRUE) #draw myLine
这给了我下面的情节