在 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))
我有一组数据:
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))