如何使用 geom_bar 垂直居中标签 (ggplot2)
How to vertically center labels with geom_bar (ggplot2)
我将非常感谢对 ggplot2 的一些帮助。我似乎无法将标签垂直居中。
代码如下:
library(ggplot2)
Group.id <- c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3)
Type.id <- c("a", "b", "c", "d", "a", "b", "c", "d","a", "b", "c", "d")
Value <- c(4000, 3200, 9529, 3984, 7504, 1244, 8960, 1865, 1100, 1100, 0, 0)
df <- data.frame(Group.id, Type.id, Value)
ggplot(df, aes(x = Group.id, y = Value, label = Value)) +
geom_bar(stat = "identity", aes(fill = Type.id)) +
scale_fill_manual(values=c("#00AF50", "#64A70B", "#F2A900", "#C30C3E"), labels = rev(unique(df$Type.id))) +
geom_text(position = position_stack(vjust = .5), color = "#FFFFFF")
结果如下:
Barplot without centered labels
它适用于较小的值,但由于某种原因,它不以较大的值为中心。有什么建议吗?
将 fill = Type.id
放入第一个 aes()
调用中:
ggplot(df, aes(x = Group.id, y = Value, label = Value, fill = Type.id)) +
geom_bar(stat = "identity") +
scale_fill_manual(values=c("#00AF50", "#64A70B", "#F2A900", "#C30C3E"), labels = rev(unique(df$Type.id))) +
geom_text(position = position_stack(vjust = .5), color = "#FFFFFF")
我将非常感谢对 ggplot2 的一些帮助。我似乎无法将标签垂直居中。
代码如下:
library(ggplot2)
Group.id <- c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3)
Type.id <- c("a", "b", "c", "d", "a", "b", "c", "d","a", "b", "c", "d")
Value <- c(4000, 3200, 9529, 3984, 7504, 1244, 8960, 1865, 1100, 1100, 0, 0)
df <- data.frame(Group.id, Type.id, Value)
ggplot(df, aes(x = Group.id, y = Value, label = Value)) +
geom_bar(stat = "identity", aes(fill = Type.id)) +
scale_fill_manual(values=c("#00AF50", "#64A70B", "#F2A900", "#C30C3E"), labels = rev(unique(df$Type.id))) +
geom_text(position = position_stack(vjust = .5), color = "#FFFFFF")
结果如下: Barplot without centered labels
它适用于较小的值,但由于某种原因,它不以较大的值为中心。有什么建议吗?
将 fill = Type.id
放入第一个 aes()
调用中:
ggplot(df, aes(x = Group.id, y = Value, label = Value, fill = Type.id)) +
geom_bar(stat = "identity") +
scale_fill_manual(values=c("#00AF50", "#64A70B", "#F2A900", "#C30C3E"), labels = rev(unique(df$Type.id))) +
geom_text(position = position_stack(vjust = .5), color = "#FFFFFF")