插入件使用ggplot图例[重复](insert graph legend using ggplot

2019-10-20 03:28发布

这个问题已经在这里有一个答案:

  • 加入传奇GGPLOT2线图 3个回答

我有一个关于使用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,你可以看到,但图的图例不会出现

Answer 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")

结果:



文章来源: insert graph legend using ggplot [duplicate]