我正在使用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
为每个Y
上geom_line
和id
的{{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}}
答案 0 :(得分:2)
答案(如聊天中所述)非常简单:
将geom_text(data = df, ...)
更改为geom_text(data = df[df$id == i, ], ...)