在R中创建多个图依赖于两个不同的分类变量

时间:2015-06-11 08:57:53

标签: r graph plot

我是R的新手,我试图通过使用一个包含1000多个变量观测值的数据集,在单个图形中生成RStudio多条形图。下面是数据集的一个片段:

Municipality    Production  Type
Atima           690         Reverification
Atima           120         Reverification
Atima           220         Reverification
Comayagua       153         Initial
Comayagua       193         Initial
Comayagua       138         Initial
Comayagua       307         Reverification
Copán           179         Initial
Copán           100         Initial
Copán           236         Reverification
Copán           141         Reverification
Danlí            56         Reverification
...

数据集的结构是

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   1543 obs. of  3 variables:
$ Municipality    : chr  "Atima" "Atima" "Atima" "Comayagua" ...
$ Production      : num  98 690 153 307 179 ...
$ Type            : chr  "Reverification" "Reverification" "Reverification" "Initial" ...

我想要的是一个显示一对酒吧的酒吧(每个市政府有一对酒吧),一个酒吧显示一个市镇的生产量"初始"另一个栏显示" Reverification"。

我尝试过各种命令,例如barplot,barchart和ggplot,但到目前为止还没有成功。

我是否应该将Type变量拆分为2,1为每个类别?我还尝试根据类型将其绘制为仅用于制作,并收到以下消息:

barplot(table(dataset$Production[dataset$Type=="Initial"]), names.arg = Municipality)
Error in barplot.default(dataset$Production[dataset$Type=="Initial"]), names.arg = 
Municipality, : incorrect number of names

我在Windows 7中的Rstudio版本0.99.441中工作。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

library(ggplot2)
library(data.table)
df_s <- 
    as.data.table(df)[ , .("Production_Sum" = sum(Production)),
                      by = .(Municipality, Type)]

ggplot(df_s, aes( x = Municipality, y = Production_Sum, fill = Type)) +
    geom_bar(stat = "identity", position = position_dodge())

enter image description here

我正在使用以下数据(您在OP中指定):

df <- read.table(header = TRUE, text = "Municipality    Production  Type
Atima           690         Reverification
Atima           120         Reverification
Atima           220         Reverification
Comayagua       153         Initial
Comayagua       193         Initial
Comayagua       138         Initial
Comayagua       307         Reverification
Copán           179         Initial
Copán           100         Initial
Copán           236         Reverification
Copán           141         Reverification
Danlí            56         Reverification
")