我有一些来自2008年大选的数据,我已经汇总了这些数据,希望能够制作一些关于党外投票的图表。数据如下所示:
> voting
voteObama voteMcCain partyID totalvote outvotenumber outVoteProportion
1 325.5233 16.3212 1-Strong Dem 341.8445 16.3212 0.04774452
2 202.7162 32.6342 2-Weak Dem 235.3504 32.6342 0.13866218
3 201.8810 20.7225 3-Lean Dem 222.6035 20.7225 0.09309153
5 32.2052 143.3616 5-Lean Rep 175.5668 32.2052 0.18343559
6 26.6978 204.2876 6-Weak Rep 230.9854 26.6978 0.11558220
7 9.3775 245.7965 7-Strong Rep 255.1740 9.3775 0.03674943
我想使用ggplot2库,之前已经取得了成功。我希望以下命令能够给出我想要的图形:
> g <- ggplot(data=voting, aes(x=partyID, y=outVoteProportion))
> g + geom_line()
图形窗口显示,包含所有正确的标签和比例,但没有数据显示出来。如果我用ggplot绘制一些随机数据,它可以正常工作,如果我用绘图绘制这些数据:
> plot(as.factor(voting$partyID), voting$outVoteProportion)
它也可以正常工作。我不确定问题出在哪里。它是否在投票数据框架的结构中?或者我正在构建我的ggplot对象的方式?我希望这只是工作,但显然我错过了一些东西。
编辑根据要求输出dput(投票)
structure(list(voteObama = c(325.523299649358, 202.716199040413,
201.880999490619, 32.2051995545626, 26.6977999508381, 9.37749981880189
), voteMcCain = c(16.3212000578642, 32.634199783206, 20.7224997878075,
143.361599132419, 204.287599071860, 245.796498090029), partyID = c("1-Strong Dem",
"2-Weak Dem", "3-Lean Dem", "5-Lean Rep", "6-Weak Rep", "7-Strong Rep"
), totalvote = c(341.844499707222, 235.350398823619, 222.603499278426,
175.566798686981, 230.985399022698, 255.173997908831), outvotenumber = c(16.3212000578642,
32.634199783206, 20.7224997878075, 32.2051995545626, 26.6977999508381,
9.37749981880189), outVoteProportion = c(0.0477445156257969,
0.138662181778002, 0.0930915275590001, 0.183435591441075, 0.115582197246219,
0.0367494333108043)), .Names = c("voteObama", "voteMcCain", "partyID",
"totalvote", "outvotenumber", "outVoteProportion"), row.names = c("1",
"2", "3", "5", "6", "7"), class = "data.frame")
答案 0 :(得分:3)
发表评论作为回答。阅读此FAQ以了解为什么'geom_line()`不生成行
答案 1 :(得分:2)
我可以重现您的问题,并使用ggplot2和geom_line()
对离散因子进行其他尝试。如果你这样做,你将得到一个可以满足你需求的输出
g + geom_bar()
获得类似
的内容