使用 ggplot2 在 barplot 中显示多个数字列?

using ggplot2 to show multiple number columns in barplot?

有人可以帮忙在 R 中使用 ggplot2 来显示条形图,我需要在其中显示 x 轴上的列(第一、第二、第三、第四、第五)和它们在 y 轴上的值吗?不显示列 "uname"。

    > head(golQ1Grades)
               qname          uname first second third fourth fifth 
1 onlinelernen_quiz_1          xxx   100      0     0      0     0      
2 onlinelernen_quiz_2        xxxx    100      0     0      0     0      
3 onlinelernen_quiz_4        xxxx     42     71     0      0     0       
4 onlinelernen_quiz_7        xxxx     85    100     0      0     0      
5 onlinelernen_quiz_1        xxx      85    100     0      0     0      
6 onlinelernen_quiz_3         xxxx    71      0     0      0     0       

感谢您的高级帮助。

我猜您想在 Y 轴上显示平均值。

library(ggplot2)

数据

dat<-data.frame(c(100,100,42,85,85,71), c(0,0,71,100,100,0), c(0,0,0,0,0,0), c(0,0,0,0,0,0), c(0,0,0,0,0,0))
names(dat)<-NULL

计算均值并获取新数据

v1<-apply(dat, 2, mean)
nv1<-c("first","second","third", "fourth","fifth")
ndat<-data.frame(nv1, v1)

情节

p <- ggplot(ndat, aes(factor(nv1), v1)) 
p + geom_bar(stat="identity")

我认为更好的选择是 dplyrtidyr。 (我稍微改一下data.frame

library(dplyr)
library(tidyr)
library(ggplot2)

df  <- data.frame(qname = letters[1:10],
                          first = seq(1,10,1), 
                          second = seq(10,100,10),
                          third = seq(2,20,2))

然后使用gather功能:

df <- df %>%
  gather(variable, value, -qname)

在你的情况下它将是

df <- golQ1Grades %>%
  gather(variable,value, -qname, -uname)

此外,除了计算平均值之外,它也非常有用 facet_grid:

ggplot(df, aes(factor(qname),value))+
  geom_bar(stat = "identity")+
  facet_grid(.~variable)