我用以下代码绘制了一个2 geom_point图:

source("http://www.openintro.org/stat/data/arbuthnot.R")
library(ggplot2)
ggplot() +
  geom_point(aes(x = year,y = boys),data=arbuthnot,colour = '#3399ff') +
  geom_point(aes(x = year,y = girls),data=arbuthnot,shape = 17,colour = '#ff00ff') +
  xlab(label = 'Year') +
  ylab(label = 'Rate')

我只是想知道如何在右侧添加图例。具有相同的形状和颜色。三角形粉红色应具有图例“女人”,蓝色圆圈应具有图例“男人”。看起来很简单,但经过多次试用后我还是做不到。 (我是ggplot的初学者)。

最佳答案

如果重命名原始数据框的列,然后使用reshape2::melt将其融合为长格式,则在ggplot2中处理起来会容易得多。通过在ggplot命令中指定colorshape外观,并手动指定颜色和形状的比例,将显示图例。

source("http://www.openintro.org/stat/data/arbuthnot.R")
library(ggplot2)
library(reshape2)

names(arbuthnot) <- c("Year", "Men", "Women")

arbuthnot.melt <- melt(arbuthnot, id.vars = 'Year', variable.name = 'Sex',
    value.name = 'Rate')

ggplot(arbuthnot.melt, aes(x = Year, y = Rate, shape = Sex, color = Sex))+
geom_point() + scale_color_manual(values = c("Women" = '#ff00ff','Men' = '#3399ff')) +
scale_shape_manual(values = c('Women' = 17, 'Men' = 16))

关于r - 两个geom_points添加图例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17713919/

10-15 17:04