这种类型的绘图在ggplot中是可行的吗?我见过这样的例子:
http://alburez.me/2018-03-20-Population-pyramids-in-R-for-beginners/
但实际上我想要更简单的东西,像这样:

在ggplot中这是可能的吗?我的第一个直觉是创建一个柱状图/柱状图,但不能像上面的附图那样使柱状图居中。
发布于 2021-01-28 15:07:55
当然,这可以通过ggplot2来实现。一种选择是像这样使用geom_rect:
library(ggplot2)
dat <- data.frame(
name = factor(c("Gen Z", "Millenials", "Gen X")),
name_y = c(3:1),
pct = c(.3, .51, .19)
)
midpoint <- max(dat$pct) / 2
ggplot(dat) +
geom_rect(aes(xmin = midpoint - pct / 2, xmax = midpoint + pct / 2,
ymin = name_y - .45, ymax = name_y + .45),
fill = "steelblue", color = "white") +
geom_text(aes(x = midpoint, y = name_y, label = scales::percent(pct)), color = "white", fontface = "bold") +
scale_y_continuous(breaks = unique(dat$name_y), labels = unique(dat$name)) +
theme_minimal() +
labs(x = NULL, y = NULL) +
theme(axis.line.x = element_blank(), axis.text.x = element_blank(),
panel.grid = element_blank())

https://stackoverflow.com/questions/65930900
复制相似问题