ggplot2:向条形图添加图例和关联的图例标题

时间:2017-01-09 20:08:30

标签: r ggplot2 bar-chart legend

我有以下从the data-set 'temp'生成的条形图(数据位于此堆栈溢出页面的底部,也可以通过上面的链接找到)。

enter image description here

问题

目标是在标题为 Canopy Type 的条形图右侧添加一个图例,标签表示 Canopy Open Canopy 即可。

我尝试使用另一个stackoverflow答案中给出的scale_colour_manual,但我无法显示一个图例。

如果有人可以提供帮助,那么请提前多多谢谢

生成条形图的代码是:

假设您想为每个Under_Open,Topography单元格绘制Canopy_Index的平均值,您可以先形成均值:

 df.means <- aggregate(Canopy_Index ~ Under_Open + Topography, df.melt, mean)

然后,使用您问题中的代码绘制df.means:

  ggplot(df.means, aes(x = Topography, y = Canopy_Index, 
                     fill = factor(Under_Open), group = Under_Open)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_fill_discrete(name = "Topographical Feature", 
                      breaks = c("Under_tree", "Open_Canopy"),
                      labels = c("Under Canopy", "Open Canopy")) +
  xlab("Topographical Feature") + ylab("Canopy Index") +
  scale_colour_manual("Canopy Type", values = c("red", "blue")) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1), 
        text = element_text(size=14)) + 
  theme(panel.background = element_blank(), 
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.border = element_blank()) + 
  theme(axis.line.x =     element_line(color="black", size = 0.8),
        axis.line.y = element_line(color="black", size = 0.8)) 

1 个答案:

答案 0 :(得分:0)

非常感谢Thales&#39;提供解决此问题的代码

生成带有相关图例的条形图的代码:

     ggplot(df.means, aes(x=Topography, y=Canopy_Index,fill=Under_Open)) +
     geom_bar(stat="identity", position="dodge") +
     scale_fill_discrete(name="Canopy Type",
                breaks=c("Under_tree", "Open_Canopy"),
                labels=c("Under Canopy", "Open Canopy")) +
     xlab("Topographical Feature") + ylab("Canopy Index")

<强> Barplot

enter image description here