【问题标题】:Creating bar borders for a stacked histogram in R在 R 中为堆叠直方图创建条形边框
【发布时间】:2015-01-29 17:39:24
【问题描述】:

我有一组数据:

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。所以:ggplot(DF1, aes(x = Rank, y = value, fill = variable)) + geom_bar(stat = "identity") + geom_bar(stat = "identity", colour="black", show_guide=FALSE)
  • 是的,这正是我想要的,虽然我更希望在图例上也有黑色边框(但只是删除对角线)。非常感谢您的帮助 - 如果您在下面发布此答案,我会接受它作为答案。谢谢

标签: r histogram stacked


【解决方案1】:

升级评论。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2012-02-04
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    相关资源
    最近更新 更多