我有一个如下所示的数据集:
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()
我想绘制1的比例,而不是默认中的1和0计数>像这样:
我单独计算了比例,将结果存储在另一个数据框中并绘制了此图。
我的问题是:是否有一种紧凑的方式可以在一个 ggplot()
中完成此操作像我在上一个图中所做的那样命令?
更新:
我忘了说 default
的数据类型是因素。所以申请mean
不起作用。
最佳答案
我们记得二进制向量中 1 的比例就是它的平均值。在 ggplot
中绘制每个 x
平均值的方法是使用 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
两者都给出:
关于r - R 中的绘图因子比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44943657/