使用';directlabels';用于标记选择曲线的包

使用';directlabels';用于标记选择曲线的包,r,plot,ggplot2,R,Plot,Ggplot2,我有一个适合非线性模型的数据集。随后使用“ggplot2”软件包将数据和模型绘制在“R”中,以便数据和模型占用相同的ggplot。已经为一系列不同的(自由)参数值绘制了模型,我希望根据生成它们的参数值标记每个结果曲线。但是,当我使用“directlabels”包来完成此操作时,我最终会标记模型曲线和原始数据 为了更简单地说明这个问题,我创建了以下代码来生成三条带标签的曲线,我想知道是否有一种方法可以标记三条曲线中的两条(或一条)。我对使用ggplot2很陌生,所以完全有可能我误用了“ggplot

我有一个适合非线性模型的数据集。随后使用“ggplot2”软件包将数据和模型绘制在“R”中,以便数据和模型占用相同的ggplot。已经为一系列不同的(自由)参数值绘制了模型,我希望根据生成它们的参数值标记每个结果曲线。但是,当我使用“directlabels”包来完成此操作时,我最终会标记模型曲线和原始数据

为了更简单地说明这个问题,我创建了以下代码来生成三条带标签的曲线,我想知道是否有一种方法可以标记三条曲线中的两条(或一条)。我对使用ggplot2很陌生,所以完全有可能我误用了“ggplot”或“directlabels”。如果您能提供任何帮助,我们将不胜感激

代码如下:

    require("ggplot2")
    require("reshape2")
    require("directlabels")

    # Test function
    f <- function(x,y){
    x^2 + y^2
    }

    # Define range of values for each variable
    X <- seq(-4,4,0.1)
    Y <- seq(0,4,2)

    ## Label all curves:
    # Create data frame
    M <- lapply(Y, f, X)
    names(M) = Y

    M <- melt(M, id.vars = "Y")
    M <- cbind(M,X)
    names(M) = c("value", "Y", "X")

    # Plot (x, f(x,y)) for each value of y.
    p <- ggplot(M, aes(x = X, y = M$value)) + 
    geom_line(aes(y = M$value, color = M$Y), group = M$Y)
    p <- p + geom_dl(aes(label = M$Y),  method = "top.bumpup")
    p
require(“ggplot2”)
要求(“重塑2”)
要求(“直接标签”)
#测试功能

f我不知道是否有一种不那么笨重的方法,但一种解决方案是将不相关的标签更改为NA,将其保存到新变量并绘制它

newvar <- ifelse(M$Y == 0, NA, M$Y)
p + geom_dl(aes(label = newvar),  method = "top.bumpup")

newvar它工作正常,并且很好地扩展到了我原来的问题。非常感谢。