我正在尝试制作一个饼图来分解 3 个不同类别之间的值拆分(是的,我知道堆叠条形图会更好,但我真的没有选择)。我想出了如何在堆积条形图上使用 +coord_polar 制作饼图,并隐藏刻度/轴标签,但我需要在饼图的每个切片中包含实际值以及总数的百分比,并且我不知道该怎么做。这是我正在使用的代码(我使用的数据是机密的,所以我用一些模拟数据替换了它)。
library(ggplot2)
simuldata <- data.frame(Category = LETTERS[1:3],
value = c(196, 149,127))
piechart <- ggplot(simuldata, aes(x="", y=value, fill=Category)) +
geom_bar(width=1, stat="identity") +
coord_polar("y", start=0) +
xlab("") +
ylab("Value") +
theme(axis.text.x=element_blank(),axis.ticks.x=element_blank())
piechart
Run Code Online (Sandbox Code Playgroud)

我将如何将值和百分比添加到每个切片?
您可以添加一个geom_text()图层,将要堆叠的每个标签放置在中间并垂直对齐:
piechart +
geom_text(aes(label = paste0(value,
" (",
scales::percent(value / sum(value)),
")")),
position = position_stack(vjust = 0.5))
Run Code Online (Sandbox Code Playgroud)