R中的绘图因子比例

时间:2017-07-06 08:31:17

标签: r plot ggplot2

我有一个如下所示的数据集:

     edu   default 
1    1      0    
2    3      1    
3    1      1   
4    1      0   
5    2      1   
6    2      0   
...

我可以用R:

制作一个情节
ggplot(rawdata, aes(x = edu, fill = default)) +
  geom_bar() +
  labs(x = 'Education') +
  theme_excel()

enter image description here

而不是默认 1 0 的计数,我想绘制 1 是这样的:

enter image description here

我分别计算了比例,将结果存储在另一个数据框中并制作了这个图。

我的问题是:是否有一种紧凑的方式,我可以在单ggplot()命令中执行此操作,就像我在上一个情节中所做的那样?

更新: 我忘了提及default的数据类型是因子。因此,应用mean不起作用。

1 个答案:

答案 0 :(得分:2)

我们记得二元向量中1的比例就是它的平均值。在x中使用ggplot绘制平均值的方法是使用stat_summary函数。所以我们得到:

ggplot(rawdata, aes(x = edu, y = default)) + 
  stat_summary(fun.y = 'mean', geom = 'bar')

或者:

ggplot(rawdata, aes(x = edu, y = default)) + 
    geom_bar(stat = 'summary')               #include fun.y = 'mean' to avoid the message

两者都给:

enter image description here