【发布时间】:2016-10-15 12:40:34
【问题描述】:
我正在寻找一种方法来用百分比标记堆积条形图,而 y 轴显示原始计数(使用 ggplot)。这是没有标签的情节的 MWE:
library(ggplot2)
df <- as.data.frame(matrix(nrow = 7, ncol= 3,
data = c("ID1", "ID2", "ID3", "ID4", "ID5", "ID6", "ID7",
"north", "north", "north", "north", "south", "south", "south",
"A", "B", "B", "C", "A", "A", "C"),
byrow = FALSE))
colnames(df) <- c("ID", "region", "species")
p <- ggplot(df, aes(x = region, fill = species))
p + geom_bar()
我有一个更大的表,R 可以很好地计算每个地区的不同物种。现在,我想同时显示原始计数值(最好在 y 轴上)和百分比(作为标签)来比较区域之间的物种比例。
我使用geom_text() 尝试了很多东西,但我认为与其他问题(e.g. this one)的主要区别在于
- 我没有单独的 y 值列(它们只是每个区域不同物种的计数)和
- 我需要每个区域的标签总和达到 100%(因为它们被认为代表不同的群体),而不是整个地块的所有标签。
非常感谢任何帮助!
【问题讨论】:
-
当你做一些非标准的事情时,你通常需要自己计算数字。 可能可以在 ggplot 中执行此操作,但这并不简单。最好使用为数据操作构建的函数,然后尝试在 ggplot 中进行数据操作。