2015-03-03 3 views
0

Кто-нибудь, пожалуйста, помогите с использованием ggplot2 в R, чтобы показать штрих-код, где мне нужно показать столбцы (первая, вторая, третья, четвертая, пятая) по оси x и их значения по оси Y? без отображения столбца «uname».с использованием ggplot2 для отображения столбцов нескольких столбцов в barplot?

> 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  

Спасибо за расширенную помощь.

+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 

Compute средний и получить новые данные

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") 
+0

Спасибо, это имеет смысл сейчас :) –

+0

Привет, Мохаммад, если вам понравился ответ, у вас есть возможность подняться и принять его как ответ на Stackoverflow! –

+0

Привет, Рутгер, проблема в том, что у меня есть репутация 6. и я не могу продвинуться, пока не достиг 15. –

0

Я думаю, что лучшим вариантом будет dplyr и tidyr .E.g , (Меняю 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) 

Futhermore, вместо вычисления среднего значения также чрезвычайно полезно facet_grid:

ggplot(df, aes(factor(qname),value))+ 
    geom_bar(stat = "identity")+ 
    facet_grid(.~variable) 
Смежные вопросы