更改多个ggplot图例中的标签

时间:2014-01-25 01:13:47

标签: r ggplot2

使用钻石数据集和以下代码,我创建了下图。

ggplot(diamonds[diamonds$color == c("D", "E", "F"),], aes(x=carat, y=price, shape = color, color=cut)) +
  geom_point() 

enter image description here

我正在尝试将图例标签(不是标题)更改为当前以外的其他标签。

我一直在尝试单个传奇的代码(下面)

ggplot(diamonds[diamonds$color == c("D", "E", "F"),], aes(x=carat, y=price, shape = color, color=cut)) +
  geom_point() + 
  scale_shape_manual(lables = c("DDD", "EEE", "FFF"))

但是得到这个错误:

Error in discrete_scale(aesthetic, "manual", pal, ...) : 
  unused argument (lables = c("DDD", "EEE", "FFF"))

当有两个图例时,如何指定要更改的图例?

由于

3 个答案:

答案 0 :(得分:3)

如果您将values传递给scale_shape_manual,则可以更改图例标签。

ggplot(diamonds[diamonds$color == c("D", "E", "F"),], aes(x=carat, y=price, shape = color, color=cut)) +  geom_point() + 
  scale_shape_manual(values=1:3,
                      labels=c("CCC", "DDD", "EEE"))

产地: enter image description here

答案 1 :(得分:3)

请注意您的拼写标签而不是导致错误的标签。尝试

scale_shape_discrete(labels = c("DDD", "EEE", "FFF"))

答案 2 :(得分:2)

或者您可以使用因子来更改每个级别的标签

diamonds2 <- diamonds[diamonds$color == c("D", "E", "F"),]
diamonds2$color <- factor(diamonds2$color, levels = c('D', 'E', 'F'), labels = c("DDD", "EEE", "FFF"))

ggplot(diamonds2, aes(x=carat, y=price, shape = color, color=cut)) +
  geom_point()