首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“直接标签”包标出选择曲线

使用“直接标签”包标出选择曲线
EN

Stack Overflow用户
提问于 2014-09-25 03:12:00
回答 1查看 302关注 0票数 3

我有一个符合非线性模型的数据集。数据和模型随后使用包‘ggplot 2’在'R‘中绘制,这样数据和模型就占据了相同的in图。该模型已绘制为一系列不同的(自由)参数值,我希望标签的每一条曲线的结果,根据其中的参数值已经产生它们。然而,当我使用“directlabels”包来完成这个任务时,我最终会给模型曲线和原始数据贴上标签。

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

守则如下:

代码语言:javascript
复制
    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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 06:40:11

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

代码语言:javascript
复制
newvar <- ifelse(M$Y == 0, NA, M$Y)
p + geom_dl(aes(label = newvar),  method = "top.bumpup")

这只给了我标签2和4,而0(红线)仍然没有标签。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26029860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档