2017-02-21 4 views
1

Извините, если этот вопрос уже задан!Изменение цвета гистограммы с реактивными данными в блестящем

Я пишу блестящее приложение, которое учитывает посещаемость учащихся после занятий в школе. Данные организованы по дате, типу деятельности, учащемуся и по тому, участвовал ли учащийся в сессии (двоичный 1 для да и 0 для нет). Существует также столбец «Rate», на который только что настало время на 100 (что я использую для гистограммы, см. Ниже). Вот пример данных:

Date   Activity   Name    Attended Rate 
01/02/2017  Tutoring   John Doe   1   100 
01/02/2017  Music    Jane Smith   0   0 
02/02/2017  Drama    John Doe   0   0 

В данный момент я рисую данные на гистограмме. Я планирую среднюю посещаемость студентом, используя реактивный набор данных (mydata()), который фильтрует столбцы Date и Activity. Вот код для BarChart:

output$attendancerate <- renderPlot({ 
ggplot(mydata(), aes(Name, Rate)) + 
stat_summary(geom = "bar", fun.y="mean") + 
coord_flip() + 
ylab("Attendance Rate (%)") + 
stat_summary(aes(label=round(..y..,1)), fun.y=mean, geom="text",hjust=-.2) 

Я особенно заинтересован в привлечении внимания к студентам с уровнем посещаемости 75% или менее. Я бы хотел, чтобы эти ученики с 75% или менее заполнены красным цветом, а те, у кого 75% или выше, были заполнены зеленым цветом.

Я не могу понять, как это сделать так, чтобы реагировать на изменения данных!

Заранее благодарим за любую помощь.

ответ

0

Есть несколько вариантов решения этого вопроса.

Один из них использует barplot() в R.

Пожалуйста, попробуйте следующее:

output$attendancerate <- renderPlot({ 
dataRead_bar<-mydata()[,c('Name',"Rate")] 
cols <- c("red", "green")[(dataRead_bar$Rate > 0.75) + 1] 
barplot(dataRead_bar[,c(2)], names = dataRead_bar$Name, 
     xlab = "Name", col=cols) 

}) 

Пожалуйста, дайте мне знать, если вы имеете любой вопрос! Я не знаю вашего реактивного набора данных, поэтому я не проверял, работает ли мой код в порядке или нет, но он должен предоставить вам ключ к решению этой проблемы.

+0

Спасибо за ваш ответ! Когда я запускаю код, я не получаю средние значения? – user7599268

Смежные вопросы