将条件强加到频率表中。 (修改代码)

时间:2016-01-24 15:32:11

标签: r ggplot2

如何修改以下代码,只显示频率级别> 10%。在我的真实数据集中,分类变量有35个级别,为了更好的可视化,我没有将所有级别都带入绘图中。 2-如何管理绘图的大小,因为某些级别的频率非常高,有些级别非常低。 数据集来自汽车包装。

table_ <- ggplot(States, aes(region ,fill=region))
table_ <- table_ + geom_bar() 
table_ <- table_ + theme(legend.position="none")
table_ <- table_ + coord_flip()
table_ <- table_ + geom_text(aes(y = (..count..),label = ifelse((..count..)==0,"",scales::percent((..count..)/sum(..count..)))), 
                                                                                                             stat="count",colour="black",vjust=1.0,size=4)

1 个答案:

答案 0 :(得分:0)

您可以先在x轴上创建所需变量的levels向量:

# Extract the factor levels with > 0.1 relative frequencies
levels <- names(which(summary(States$region)/sum(summary(States$region)) >0.1))

# If you just want for example the top ten variables (question 2)
levels <- names(sort(summary(States$region),decreasing=TRUE)[1:10])

然后您可以使用它定义limit的{​​{1}}参数:

scale_x_discrete