【问题标题】:Simple barplot displaying voting of a county显示县投票的简单条形图
【发布时间】:2019-01-22 21:25:09
【问题描述】:

我对 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,但我似乎无法弄清楚这一点。

抱歉,这可能非常简单,但我刚刚开始编码。

【问题讨论】:

  • 听起来您正在寻找barplot(Ostfold[1,])。可能有一个 ggplot 等价物。

标签: r bar-chart


【解决方案1】:

您有一些问题。首先,不需要提取行。其次,数据是“宽”格式(列中的任务)而不是“长格式”(名为“任务”的列,带有值)。第三,你想绘制计数,所以geom_col()geom_histogram() 好。

tidyr 包中的 gather() 函数将把您的数据从宽转换为长:

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) 以按县分面,具体取决于县的数量。

【讨论】:

  • 非常感谢!这将有很大帮助,因为我有很多类似的绘图要做。
猜你喜欢
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2010-10-02
  • 2012-02-23
  • 1970-01-01
相关资源
最近更新 更多