使用ggplot2 1.0.0
,我按照以下文章中的说明进行操作,以了解如何绘制跨因素的百分比条形图:
test <- data.frame(
test1 = sample(letters[1:2], 100, replace = TRUE),
test2 = sample(letters[3:8], 100, replace = TRUE)
)
library(ggplot2)
library(scales)
ggplot(test, aes(x= test2, group = test1)) +
geom_bar(aes(y = ..density.., fill = factor(..x..))) +
facet_grid(~test1) +
scale_y_continuous(labels=percent)
但是,使用时,我似乎无法获得总数的标签或每个条形图上方的百分比geom_text
。
上面的代码还能保留y轴百分比的正确补充是什么?
停留在ggplot中,您可以尝试
ggplot(test, aes(x= test2, group=test1)) +
geom_bar(aes(y = ..density.., fill = factor(..x..))) +
geom_text(aes( label = format(100*..density.., digits=2, drop0trailing=TRUE),
y= ..density.. ), stat= "bin", vjust = -.5) +
facet_grid(~test1) +
scale_y_continuous(labels=percent)
对于计数,请在geom_bar和geom_text中将..density ..更改为..count ..
ggplot 2.x的更新
ggplot2 2.0
进行了许多更改,ggplot
包括在更改ggplot 2.0.0stat
使用的默认功能时破坏了该代码的原始版本。现在,它不再像以前那样调用来对数据进行装箱,而是调用以对每个位置的观测值进行计数。以该位置而不是的计数比例返回。geom_bar
stat_bin
stat_count
stat_count
prop
density
下面的代码已被修改以与的新版本一起使用ggplot2
。我提供了两个版本,两个版本都显示了条形的高度(以计数的百分比表示)。第一个显示条形上方的计数的百分比,第二个显示条形上方的计数。我还为y轴和图例添加了标签。
library(ggplot2)
library(scales)
#
# Displays bar heights as percents with percentages above bars
#
ggplot(test, aes(x= test2, group=test1)) +
geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
geom_text(aes( label = scales::percent(..prop..),
y= ..prop.. ), stat= "count", vjust = -.5) +
labs(y = "Percent", fill="test2") +
facet_grid(~test1) +
scale_y_continuous(labels=percent)
#
# Displays bar heights as percents with counts above bars
#
ggplot(test, aes(x= test2, group=test1)) +
geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
geom_text(aes(label = ..count.., y= ..prop..), stat= "count", vjust = -.5) +
labs(y = "Percent", fill="test2") +
facet_grid(~test1) +
scale_y_continuous(labels=percent)
第一个版本的图如下所示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句