gpt4 book ai didi

r - 使用 'directlabels' 包来标记选择曲线

转载 作者:行者123 更新时间:2023-12-04 10:10:28 26 4
gpt4 key购买 nike

我有一个数据集,我对其拟合了一个非线性模型。随后使用包“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

最佳答案

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

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

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

关于r - 使用 'directlabels' 包来标记选择曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com