在R中为堆叠直方图创建条形边框

时间:2015-01-29 17:39:24

标签: r histogram stacked

我有一组数据:

DF <- read.table(text="Rank F1     F2     F3
1    500    250    50
2    400    100    30
3    300    155    100
4    200    90     10", header=TRUE)

library(reshape2)
DF1 <- melt(DF, id.var="Rank")

我想创建一个堆积直方图:

library(ggplot2)
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
geom_bar(stat = "identity")

现在我想为每个条形图包含一个黑色边框,以便在视觉上更清晰。我虽然这会奏效:

ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
geom_bar(stat = "identity")+geom_histogram(colour = "black")

但是,这不是我想要的 问题1:每个栏中没有黑色边框 问题2:图例中的每个组都有一条额外的对角线。我想删除这一行。

我想知道是否有人可以让我知道我做错了什么,以及在直方图中为每个条形包含黑色边框的正确方法是什么。

非常感谢。

1 个答案:

答案 0 :(得分:4)

升级评论。

要获得边框,只需在第一个图中将colour="black"添加到geom_bar来电。对图例中黑线的快速修复是绘制两个geom_bar调用,抑制带边框的调用中的图例。然后,您可以使用legend.key主题

为图例添加黑色边框
ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + 
     geom_bar(stat = "identity") + 
     geom_bar(stat = "identity", colour="black", show_guide=FALSE)   +
     theme(legend.key = element_rect(colour = "black", size=1.5))