如何在条形图中堆叠水平?
How to stack a level in a bar chart?
我正在尝试从 2x2 数据框构建堆叠条形图。我正在使用 ggplot2 1.0.0
。不幸的是,B
级别数据的列只显示一种颜色,而不是两种颜色。
df <- data.frame(x1 = rep(c("A","B"), each = 2), x2 = c(75.0, 25.0, 50.0, 50.0))
fig1 <- ggplot(data = df, aes(x = x1, y = x2)) + geom_bar(aes(x1, fill = x2), stat = "identity") + xlab("") + ylab("%") + ggtitle("df")
fig1 + geom_text(aes(label = x2), vjust = -0.8, colour = "white")
代码生成下图:http://imgur.com/j3DEO5h
有什么想法吗?
您使用连续比例填充,因此两个 50 值具有相同的颜色。您可以使用这样的离散比例:
ggplot(transform(df, var = as.factor(1:2)),
aes(x = x1, y = x2, fill = var)) +
geom_bar(stat = "identity")
我正在尝试从 2x2 数据框构建堆叠条形图。我正在使用 ggplot2 1.0.0
。不幸的是,B
级别数据的列只显示一种颜色,而不是两种颜色。
df <- data.frame(x1 = rep(c("A","B"), each = 2), x2 = c(75.0, 25.0, 50.0, 50.0))
fig1 <- ggplot(data = df, aes(x = x1, y = x2)) + geom_bar(aes(x1, fill = x2), stat = "identity") + xlab("") + ylab("%") + ggtitle("df")
fig1 + geom_text(aes(label = x2), vjust = -0.8, colour = "white")
代码生成下图:http://imgur.com/j3DEO5h
有什么想法吗?
您使用连续比例填充,因此两个 50 值具有相同的颜色。您可以使用这样的离散比例:
ggplot(transform(df, var = as.factor(1:2)),
aes(x = x1, y = x2, fill = var)) +
geom_bar(stat = "identity")