我对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 - &gt; 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,如您所见,但图表的图例未出现
答案 0 :(得分:2)
为此,您必须将数据从宽格式转换为长格式。
# 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")
结果: