使用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插入图例[重复]的主要内容,如果未能解决你的问题,请参考以下文章

避免使用 facet_wrap 从 ggplot 进行情节转换中的图例重复

ggplot2:如何显示图例[重复]

使用ggplot2在叠加密度图中重复图例

删除两个ggplot图例之一[重复]

R ggplot从图例中删除某些项目[重复]

用ggplot2添加图例[重复]