2013-02-05 206 views
1

我正在与ggplot2一起生成一些geom_line图表,我已经从另一个data.frame生成了这个图表,这在此处不重要。但它也包含与以下数据帧相同的id值。在ggplot2中添加自定义图例

我有一个名为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其中存在特定ID对每个geom_lineXY为当id变量是百分比一样。所以基本上对例如每个geom_lineid=1,画为idgeom_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) 
} 

enter image description here

+4

你应该张贴你到目前为止你面对geom_text并粘贴从您的代码导致图中的问题的代码让你的文章更具信息性。 – Arun

+0

(+1)为好的更新。但是,另外,您能否提供'olddf'的数据?我想为您提供一个答案,但我需要这些数据。 – Arun

+0

@Arun谢谢你,olddf数据框太大了,不能在这里展示......但基本上'id,pos,X,Y和Z'的值与df中的值相似,所以你可以创建一个随机的'df '具有类似的价值。 – ifreak

回答

2

答案(如在聊天中讨论)是相当简单:

变化geom_text(data = df, ...)geom_text(data = df[df$id == i, ], ...)

相关问题