R ggplot barplot分别为每年

时间:2014-11-27 09:00:16

标签: r ggplot2 grouping

我想知道如何获得每年分别数据的条形图。我想添加一个Excel图像,但我无法在这个论坛中成为新手。 我在数据框中有以下数据:

Year    2009/10    2010/11    2011/12     2012/13    2013/14
V1     -221.85      0.00       0.00      -138.73     -191.10
V2       0.00     -223.16    -231.52       0.00      -126.85
V3       0.00     -1216.17   -1337.28    -1112.11    -863.98
V4       0.00     -520.87    -540.88     -174.85     -296.78
V5       0.00     -465.48    -805.63     -252.38     -178.92
V6       0.00     -496.25      0.00        0.00      -232.17
V7       0.00       0.00       0.00      -709.63     -759.41

请有人帮助我 - 我尝试了不同的方法但没有成功。

非常感谢提前

steff

2 个答案:

答案 0 :(得分:0)

您可以跳过第一列命名的内容。如果您想要按第一行命名,请在导入R时使用带有h = TRUE的read.table。 从Excel导出为csv,其中sep =是您的分隔符并使用:

  

data< - read.table(pathToCSV,h = TRUE,sep =“”)
  barplot(as.matrix(数据))

答案 1 :(得分:0)

不确定这是否是您要找的..

dat <- structure(list(var = structure(1:7, .Label = c("V1", "V2", "V3",  "V4", "V5", "V6", "V7"), class = "factor"), `2009` = c(-221.85, 0, 0, 0, 0, 0, 0), `2010` = c(0, -223.16, -1216.17, -520.87, -465.48, -496.25, 0), `2011` = c(0, -231.52, -1337.28, -540.88, -805.63, 0, 0), `2012` = c(-138.73, 0, -1112.11, -174.85, -252.38, 0, -709.63), `2013` = c(-191.1, -126.85, -863.98, -296.78, -178.92, -232.17, -759.41)), .Names = c("var", "2009", "2010", "2011", "2012", "2013"), class = "data.frame", row.names = c(NA, -7L))

library(ggplot2)
library(reshape2)

names(dat) <- c("var", "2009", "2010", "2011", "2012", "2013")
dat.m <- melt(dat)
ggplot(dat.m, aes(x=variable, y=value, fill=var)) + geom_bar(position="dodge", stat="identity")

enter image description here