R图上的点位于错误位置?

R图上的点位于错误位置?,r,graph,R,Graph,我试图在R中创建一个简单的代码,它将绘制一条抛物线 在图中,将有一条平行线和两个点标记,它穿过X轴。 第一个点(x1)画得很好,但第二个点(x2)画得很好。。。在与x1相同的位置,尽管这些值为负值 在理解为什么会发生这种情况以及如何纠正这种情况方面有什么帮助吗 a=1 b=0 c=-5 curve(a*(x^2)+b*x+c, ylim=c(-10,10), xlim=c(-10,10)) abline(h=0, v=0, lwd=2) grid() ## Add points at axis

我试图在R中创建一个简单的代码,它将绘制一条抛物线

在图中,将有一条平行线和两个点标记,它穿过X轴。 第一个点(x1)画得很好,但第二个点(x2)画得很好。。。在与x1相同的位置,尽管这些值为负值

在理解为什么会发生这种情况以及如何纠正这种情况方面有什么帮助吗

a=1
b=0
c=-5
curve(a*(x^2)+b*x+c, ylim=c(-10,10), xlim=c(-10,10))
abline(h=0, v=0, lwd=2)
grid()

## Add points at axises
x1<-(-b+sqrt(b^2-4*a*c))/(2*a)
if(!is.nan(x1)){
  p1 <- c(x1, a*(x1^2)+b*x1+c)
  points(t(p1), pch=16)
  text(t(p1), "x1", adj=-1)
}
if(!is.nan(x2)){
  x2<-(-b-sqrt(b^2-4*a*c))/(2*a)
  p2 <- c(x2, a*(x2^2)+b*x2+c)
  text(t(p2), "x2", adj=-1)
}
a=1
b=0
c=-5
曲线(a*(x^2)+b*x+c,ylim=c(-10,10),xlim=c(-10,10))
abline(h=0,v=0,lwd=2)
网格()
##在轴上添加点

x1这不是我绘制图形的方式(我使用
ggplot
),但是使用在线帮助,我看到
文本
的第一个参数是x坐标向量,而不是(x,y)对。因此,您的呼叫与您的意图不符

这似乎给了你想要的:

a=1
b=0
c=-5
curve(a*(x^2)+b*x+c, ylim=c(-10,10), xlim=c(-10,10))
abline(h=0, v=0, lwd=2)
grid()

x1 <-(-b+sqrt(b^2-4*a*c))/(2*a)
x2 <-(-b-sqrt(b^2-4*a*c))/(2*a)
text(x=c(x1, x2), y=c(0, 0), labels=c("x1", "x2"), adj=c(-1, -1))
points(x=c(x1, x2), y=c(0, 0))
a=1
b=0
c=-5
曲线(a*(x^2)+b*x+c,ylim=c(-10,10),xlim=c(-10,10))
abline(h=0,v=0,lwd=2)
网格()
你失踪了

x2中的点(t(p2),pch=16)
。 文本位于一个点的旁边,没有新点意味着文本位于同一点


另外,尝试使用“pos”来指定文本相对于点的位置,而不是“adj”。

insert
x2谢谢@利米