在ggplot2中添加自定义图例

时间:2013-02-05 09:33:53

标签: r ggplot2

我正在使用ggplot2生成一些我已经从另一个geom_line生成的data.frame个图,这里不重要。但它也包含与以下数据帧相同的id值。

我有一个名为df的数据框:

id    X   Y     total
1   3214 6786   10000
2   4530 5470   10000
3   2567 7433   10000
4   1267 8733   10000
5   2456 7544   10000
6   6532 6532   10000
7   5642 4358   10000

我想要做的是创建custom legend,其中X为每个Ygeom_lineid的{​​{1}}和geom_line的百分比变量是一样的。所以基本上对于每个id=1例如id,在geom_line图中绘制geom_text的百分比

我试过使用olddf,但问题是它在一行中打印所有内容都无法看到。

如何做到这一点??

修改

id pos X Y Z 1 1..... 1 2 3 4 3 ...... . . 数据框就是这样的:

for(i in df$id)
{
test = subset(olddf, id==i)
mdata <- melt(test, id=c("pos","id"))
pl = ggplot() + geom_line(data=mdata, aes(x=pos, y=value, color=variable)) + geom_text(data=df, aes(x=6000, y=0.1, label=(X*total)/100), size=5)
}

这是我尝试过的代码

{{1}}

enter image description here

1 个答案:

答案 0 :(得分:2)

答案(如聊天中所述)非常简单:

geom_text(data = df, ...)更改为geom_text(data = df[df$id == i, ], ...)