不要在2个传奇图中显示颜色图例中的形状(R ggplot2)

时间:2014-10-23 09:38:21

标签: r colors ggplot2 legend shapes

在我的带有2个图例(一个用于形状,一个用于颜色)的情节中,我的老板发现令人困惑的是,颜色图例已经选择了其中一个形状。一个例子:

a <- data.frame(name = c("A","B","C","D"),
                type = c("dog","dog", "cat", "cat"),
                location = c("house", "house", "house", "garden"),
                count = c(3,1,5,8))

ggplot(a, aes(x=name, y=count, color=location, shape=type)) +
  geom_point(size=7)

产生以下内容: enter image description here

在此示例中,“位置”图例通过显示彩色圆圈来解释颜色(但圆圈也表示猫,这显然令人困惑)。如何强制“位置”图例只显示颜色,而不是形状?也许显示位置为红色和蓝色矩形将是理想的。

2 个答案:

答案 0 :(得分:4)

您可以使用函数guides()override.aes=将颜色图例的形状更改为矩形。然后,您可以从图例键中删除背景,以便使用theme()更好地查看。

ggplot(a, aes(x=name, y=count, color=location, shape=type)) +
      geom_point(size=7)+
      guides(color=guide_legend(override.aes=list(shape=15)))+
      theme(legend.key=element_blank())

enter image description here

答案 1 :(得分:1)

要删除形状图例,您可以执行以下操作:

ggplot(a, aes(x=name, y=count, color=location, shape=type)) + geom_point(size=7) + guides(shape=FALSE)

这会删除形状图例,但我不确定是否要更改颜色图例中的形状。