我对R和绘制情节还很陌生,对此感到抱歉。我有一个县投票数据集,我想制作一个条形图,显示每个县投票给多少个任务。
到目前为止,我要做的是提取一行,其中包括县名和它为不同政党投票的任务授权数(标头)。
Fylker AP FRP H KrF SP
Ostlandet 3 2 2 0 1
很抱歉,代码显示不佳,每当我粘贴代码时,尽管缩进,但看起来还是很奇怪。
数据称为“ Ostlandet”,仅1行。因此,正如我在上面试图解释的那样,我想以此为基础进行绘制。想法是在x轴上拥有不同的参与者,在y上拥有投票数。到目前为止,我已经尝试过了
ggplot(Ostfold, aes(x = Ostfold[1,])) +
geom_histogram(binwidth = 20)
这给了我很多错误。
我也尝试过使用barplot,但是我似乎无法弄清楚。
对不起,这可能非常简单,但我只是开始编码。
答案 0 :(得分:1)
您遇到了一些问题。首先,不需要提取行。其次,数据采用“宽”格式(列中的任务),而不是“长格式”(具有值的名为“任务”的列)。第三,您想绘制计数,以便geom_col()
比geom_histogram()
好。
gather()
包中的tidyr
函数将使您的数据变长:
library(tidyr)
library(ggplot2)
Ostfold %>%
gather(Mandate, Votes, -Fylker)
应该会生成如下内容:
Fylker Mandate Votes
1 Ostlandet AP 3
2 Ostlandet FRP 2
3 Ostlandet H 2
4 Ostlandet KrF 0
5 Ostlandet SP 1
您可以将其传递给ggplot
:
Ostfold %>%
gather(Mandate, Votes, -Fylker) %>%
ggplot(aes(Mandate, Votes)) + geom_col()
一行的结果:
对于具有多个县的数据集,您可能需要添加+ facet_wrap(~Fylker)
来按县分面图,具体取决于有多少县。