我的数据框有 age
, gender
(男/女) . 我想根据年龄绘制分组条形图,并且想要追加每个 age
的男性与女性比例的线图 .
test
是数据框, age
, gender
为列
ratio_df
是每个男性与女性的新数据帧存储比率 age
ratio_df <- ddply(test, 'age', function(x) c('ratio' = sum(test$gender == 'Male') / sum(test$gender == 'Female')))
ggplot
在 ggplot
中有条形图和比率线
ggplot(data = test, aes(x = factor(age), fill = gender)) + geom_bar() + geom_line(data = ratio_df, aes(x = age, y = ratio))
1 回答
如上所述,你的ddply调用似乎对我来说 - 我认为它总是产生相同的比率(在整个数据帧上) . 我无法从头顶想出一个紧凑的优雅,所以我不得不求助于一个有点笨重的,但它确实有效 .
编辑:我更改了代码,以反映http://rwiki.sciviews.org/doku.php?id=tips:graphics-ggplot2:aligntwoplots描述的解决方法,以解决OP的评论 .
这是你想要的?但是,我认为@SvenHohenstein是正确的,该行没有任何信息,因为分割是明显的填充 .