由因子绘制的变量图

时间:2015-09-30 06:33:20

标签: r graph plot

我希望为不同变量(v1-v5)的值绘制不同类别​​(虚拟数据中的V,C和S)的条形图,以查看不同类别的范围在变量中的变化情况。有没有办法在R中做到这一点?

 Factor   v1  v2  v3  v4  v5
      v 12.0 8.4 5.3 3.0 3.5
      v 11.8 7.5 4.7 2.8 3.7
      c 13.2 9.5 5.7 3.0 4.1
      c 13.4 9.3 6.3 3.3 3.8
      c 10.5 7.7 5.0 2.5 3.2
      s 13.1 9.6 5.4 3.1 3.9
      s 15.0 9.0 5.1 4.5 9.0

它应该是一个使用某个包的非常简单的代码,但我无法弄明白。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

library(data.table)
df2 <- melt(setDT(df), measure.vars = patterns("^v"))

library(ggplot2)
ggplot(df2, aes(x=Factor, y=value1)) +
  stat_summary(aes(fill=variable), fun.y="sum", geom = "bar", position="dodge") +
  theme_bw()

这给出了:

enter image description here

使用过的数据:

df <- read.table(text="Factor   v1  v2  v3  v4  v5
v 12.0 8.4 5.3 3.0 3.5
v 11.8 7.5 4.7 2.8 3.7
c 13.2 9.5 5.7 3.0 4.1
c 13.4 9.3 6.3 3.3 3.8
c 10.5 7.7 5.0 2.5 3.2
s 13.1 9.6 5.4 3.1 3.9
s 15.0 9.0 5.1 4.5 9.0", header=TRUE)

答案 1 :(得分:0)

还有另一种方法可以完成这项任务

df<- read.csv("dummy.csv",header=TRUE,sep=",")
df
class(df)
df2<-aggregate(cbind(df$v1,df$v2,df$v3,df$v4,df$v5)~df$Factor, FUN=sum)
df2

barp<-barplot(t(df2[ , -1]),col=c("blue", "red", "green", "orange", "gold"));
axis(side = 1, at = barp, labels = df2$`df$Factor`) 
相关问题