R 将项目添加到现有图例中
我是ggplot2的新手,几个小时以来我一直在努力在我的剧情中添加第二个传奇 我使用了两个data.frames df_1和df_2以及两个geom_点调用。我设法为df_2创建了一个图例,但无法为df_1添加第二个图例 下面是一个代码示例,其中还包括绘图:R 将项目添加到现有图例中,r,ggplot2,legend,R,Ggplot2,Legend,我是ggplot2的新手,几个小时以来我一直在努力在我的剧情中添加第二个传奇 我使用了两个data.frames df_1和df_2以及两个geom_点调用。我设法为df_2创建了一个图例,但无法为df_1添加第二个图例 下面是一个代码示例,其中还包括绘图: ########## Create sample data set.seed(69) df_1 = data.frame(lat = rnorm(20), lon = rnorm(20),
########## Create sample data
set.seed(69)
df_1 = data.frame(lat = rnorm(20),
lon = rnorm(20),
cor = c(rep('positive', 12), rep('negative', 8)),
sign = 0)
df_2 = data.frame(lat = rnorm(20),
lon = rnorm(20),
cor = c(rep('positive', 7), rep('negative', 13)),
sign = c(rep(99, 5), rep(95, 6), rep(90,9)))
#### Plot data
library(ggplot2)
p = ggplot() +
# geom_point for df_1
geom_point(data=df_1, aes(x=lon, y=lat),
alpha=0.7, color = 'darkgrey', size = 3) +
# geom_point for df_2
geom_point(data=df_2, aes(x=lon, y=lat, size=sign, colour = cor), alpha = 0.5) +
scale_color_manual(values=c("red", "blue"),
name='cor',
labels = c('neg', 'pos'),
guide = guide_legend(override.aes = list(alpha = 1, size = 3))) +
scale_size(range = c(1,3),
breaks = c(90, 95, 99),
labels = c(0.1, 0.05, 0.01),
name = 'sign',
guide = guide_legend(override.aes = list(colour = 'black',
alpha = 1)))
print(p)
如何为df_1的geom_point调用添加图例
在cor right图例中添加第三个暗灰点(标签为“not sign”)就足够了。我想简单的解决方案是,按照您的要求将第三个暗灰点添加到cor图例中。为此,您必须: 将df_1中的cor值更改为完全相同。 指定df_1 aes中的颜色。 在“缩放颜色”手册中添加第三点的信息。 代码: 结果:
# Change values so we would have single color for them
df_1$cor <- "foo"
library(ggplot2)
ggplot() +
geom_point(aes(lon, lat, color = cor), df_1,
alpha = 0.7, size = 3) +
geom_point(aes(lon, lat, size = sign, colour = cor), df_2,
alpha = 0.5) +
scale_color_manual(values = c("darkgrey", "red", "blue"),
labels = c("not sign", "neg", "pos"),
guide = guide_legend(override.aes = list(alpha = 1, size = 3))) +
scale_size(range = c(1, 3),
breaks = c(90, 95, 99),
labels = c(0.1, 0.05, 0.01),
guide = guide_legend(override.aes = list(colour = "black", alpha = 1)))