【问题标题】:Draw a circle to highlight a curve's maximum in R画一个圆圈以突出显示 R 中曲线的最大值
【发布时间】:2019-05-09 18:30:57
【问题描述】:

我正在尝试画一个小圆圈来突出使用curve() 方法绘制的函数的最大值。我已经知道该点的坐标,所以没有必要用 R 来计算它们。 这是我为绘制曲线而编写的代码:

curve(expr=exp(-((sum(s1, s2, s3, s4, s10, s599)-x*1599)^2)/
                 (2*1599*x))/sqrt(2*pi*1599*x), xlim=c(0.5, 1.5), 
      xlab=expression("rate"~~"[ "*s^-1*" ]"), ylab="")

我还附上了两张我所拥有的以及我想做的事情的图片。

我可以画的曲线:

带有小圆圈的曲线:

我提前感谢大家提供的任何帮助。

洛伦佐

【问题讨论】:

    标签: r plot graph


    【解决方案1】:

    我们可以使用points。

    示例:

    curve(x^2)
    points(x=.5, y=.25, cex=2, col="red")
    

    或者,更复杂的......

    v <- curve(-x^2, xlim=c(-1, 1))
    points(max(v$y), v$x[which.max(v$y)], cex=2, col=2)
    

    【讨论】:

      【解决方案2】:

      另一个比which.max 更精确地找到最大值位置的方法是使用optimize。

      y = function(x,s=2000) exp(-((s-x*1599)^2)/(2*1599*x))/sqrt(2*pi*1599*x)
      xlim = c(0.5, 1.5)
      
      curve(y, xlim=xlim)
      
      maximum = optimize(y, xlim, maximum = TRUE)
      points(maximum$maximum, maximum$objective, col='red')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多