首页 文章

修复ggplot中facet的顺序

提问于
浏览
54

数据:

type    size    amount  
T   50%     48.4    
F   50%     48.1    
P   50%     46.8    
T   100%    25.9    
F   100%    26.0    
P   100%    24.9    
T   150%    21.1    
F   150%    21.4    
P   150%    20.1    
T   200%    20.8    
F   200%    21.5    
P   200%    16.5

我需要使用ggplot(x轴 - >“type”,y轴 - >“amount”,group by“size”)绘制上述数据的条形图 . 当我使用下面的代码时,我没有按照数据中显示的顺序获得变量“type”和“size” . 请看图 . 我已经使用了以下代码 .

ggplot(temp, aes(type, amount , fill=type, group=type, shape=type, facets=size)) + geom_bar(width=0.5, position = position_dodge(width=0.6)) + facet_grid(.~size) + theme_bw() + scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"), labels = c("T", "F", "P"))

enter image description here
.

为了解决订单问题,我使用了以下的变量“type”的因子方法 . 请看图 .

temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P"))

enter image description here

但是,现在我不知道如何修改变量“size”的顺序 . 它应该是50%,100% . 150%和200% .

1 回答

  • 79

    通过以下方式将您的尺寸作为数据框中的一个因素

    temp$size_f = factor(temp$size, levels=c('50%','100%','150%','200%'))
    

    然后将 facet_grid(.~size) 更改为 facet_grid(.~size_f)

    然后情节:
    enter image description here

    现在图表的顺序正确 .

相关问题