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

Creating bar borders for a stacked histogram in R

我有一组数据:

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:图例中的每个组都有一条额外的对角线。我想删除这一行。

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

非常感谢。

升级评论。

要获得边框,只需在您的第一个图中将 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))