我有一个符合非线性模型的数据集。数据和模型随后使用包‘ggplot 2’在'R‘中绘制,这样数据和模型就占据了相同的in图。该模型已绘制为一系列不同的(自由)参数值,我希望标签的每一条曲线的结果,根据其中的参数值已经产生它们。然而,当我使用“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发布于 2014-09-25 06:40:11
我不知道是否有一种不那么笨重的方法,但一种解决方案是将不相关的标签更改为NA,将其保存到一个新变量并绘制它。
newvar <- ifelse(M$Y == 0, NA, M$Y)
p + geom_dl(aes(label = newvar), method = "top.bumpup")这只给了我标签2和4,而0(红线)仍然没有标签。
https://stackoverflow.com/questions/26029860
复制相似问题