使用ggplot插入图例[重复]
Posted
技术标签:
【中文标题】使用ggplot插入图例[重复]【英文标题】:insert graph legend using ggplot [duplicate] 【发布时间】:2014-07-01 17:45:51 【问题描述】:我对 ggplot 的使用有疑问。我有以下 data.frame 和一个常量。我正在使用以下功能,我设法制作了我的情节,但我无法打印图例,我做错了什么?
我会用这个函数来获取情节:
LINER_GRAPH_POWER_LIST_VALUES<-function(DF_N_EPC_AND_FOUND_EPC, DF_READ_EXTERNAL_LIST_EPC_TAGS )
require(ggplot2)
ggplot(DF_N_EPC_AND_FOUND_EPC, aes(x=power_value, y=total_epc), colour = variables) +
geom_line(color="red") +
geom_point(color="red", shape=20) +
geom_line(aes(x=power_value, y=found_epc), color="blue") +
geom_point(aes(x=power_value, y=found_epc), color="blue", shape=20) +
geom_hline(yintercept=nrow(DF_READ_EXTERNAL_LIST_EPC_TAGS), color="green")+
scale_colour_manual(values = c("total_epc"="red","epc_found"="blue", "num_of_list_reference_tags"="green"))
情节
还有data.frame -> DF_N_EPC_AND_FOUND_EPC
power_value total_epc found_epc
1 31.5 9 5
2 31.0 7 4
3 30.5 6 4
4 30.0 7 4
5 29.5 8 5
6 29.0 9 5
7 28.5 8 5
8 28.0 9 5
9 27.5 8 4
10 27.0 7 4
11 26.5 8 5
12 26.0 7 5
13 25.5 5 4
14 25.0 5 4
15 24.5 5 4
16 24.0 4 3
17 23.5 4 3
18 23.0 4 3
19 22.5 4 3
20 22.0 4 3
我用的是scale_colour_manual,如你所见,但是图的图例没有出现
【问题讨论】:
您可以分享dput(DF_N_EPC_AND_FOUND_EPC)
以使其易于复制吗?
可能重复:***.com/q/10349206/324364
【参考方案1】:
为此,您必须将数据从宽格式转换为长格式。
# reading the data
df <- read.table(text="nr power_value total_epc found_epc
1 31.5 9 5
2 31.0 7 4
3 30.5 6 4
4 30.0 7 4
5 29.5 8 5
6 29.0 9 5
7 28.5 8 5
8 28.0 9 5
9 27.5 8 4
10 27.0 7 4
11 26.5 8 5
12 26.0 7 5
13 25.5 5 4
14 25.0 5 4
15 24.5 5 4
16 24.0 4 3
17 23.5 4 3
18 23.0 4 3
19 22.5 4 3
20 22.0 4 3", header=TRUE)
# from wide to long format
require(reshape2)
df.m <- melt(df, id=c("power_value","nr"), measure=c("total_epc","found_epc"), variable.name="epc")
# creating the plot
ggplot(df.m, aes(x=power_value, y=value, color=epc)) +
geom_line() +
geom_point() +
geom_hline(yintercept=6, color="green")
结果:
【讨论】:
+1,但请注意,这可以手动完成,如here @DavidRobinson Thanx,这是一个不错的技巧。但是,我确实更喜欢这种手动解决方案。以上是关于使用ggplot插入图例[重复]的主要内容,如果未能解决你的问题,请参考以下文章