我是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中工作。
提前感谢您的帮助。
答案 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())
我正在使用以下数据(您在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
")