我有这些数据:
No Yes
Female 411 130
Male 435 124
是使用标准表命令创建的。现在有了情节,我可以这样绘制:
plot(table(df$gender, df$fraud))
然后输出2x2条形图。
所以我的问题是,我怎么能用ggplot2做到这一点?有没有办法将table-object转换为数据框?我会这样做,但它变得一团糟,然后你需要重命名列和行标题,它只是变得一团糟真的很简单?
答案 0 :(得分:18)
诸如
之类的东西ggplot(as.data.frame(table(df)), aes(x=gender, y = Freq, fill=fraud)) +
geom_bar(stat="identity")
得到一个类似的图表,其中最小量的重新标记。
答案 1 :(得分:3)
ggplot2适用于数据框,因此,您必须将表转换为框架。以下是示例代码:
myTable <- table(df$gender, df$fraud)
myFrame <- as.data.frame(table(myTable))
现在,您可以在ggplot2中使用myFrame:
ggplot(myFrame, aes(x=gender))+
geom_bar(y = Freq)
有关详细信息,请参阅Coerce to a Data Frame。