2016-03-11 2 views
0

У меня есть 3 набора данных из 3 различных файлов данных csv, и я пытаюсь поместить их в один квадратик с точками в среднем для каждого окна. Все хорошо, пока я пытаюсь добавить средства Используя ниже сценарий, я получаю выходной график, который я хочу (так что эта часть все хорошо) ...Построение множественных средств на ящике в R

boxplot(a$total, p$total, f$total, 
     names = c("Total", "PR", "FM"), ylab="Evals", 
     col = c("firebrick4", "red3", "tomato1")) 

Но я столкнулся с проблемами при добавлении Значение. Использование points(mean(a$total), pch=18) добавляет именно то, что я хочу в первом поле («Всего»), но когда я делаю points(mean(p$total), pch=18), он добавляет среднее значение p$total в поле «Всего», а не в поле «PR». Любая помощь очень ценится! All 3 mean points on first box

+1

Попробуйте создать вектор 'mean' first:' означает <- c (среднее (a $ total), среднее (p $ total), среднее (f $ total)) 'then do' + points (означает, pch = 18) ' – JasonAizkalns

+0

Или используйте' ggplot' с несколькими геометриями 'stat_summary'. Если вы добавите некоторые данные о игрушке (попробуйте 'dput'), я покажу вам, как это сделать. – RHA

ответ

0

У меня есть ggplot решение для Вас:

Во-первых, некоторые игрушки данные:

a <- data.frame(total = rnorm(50, 4, 0.3)) 
p <- data.frame(total = rnorm(50, 5, 0.4)) 
f <- data.frame(total = rnorm(50, 4, 0.25)) 

Теперь сделать сюжет и использовать stat_summary, чтобы получить средства:

library(ggplot2) 

ggplot(a, aes(y=total, x=NA)) + 
    geom_boxplot(data=a,aes(x="Total"),fill="firebrick4") + 
    geom_boxplot(data=p,aes(x="PR"),fill="red3") + 
    geom_boxplot(data=f,aes(x="FM"),fill="tomato1") + 
    xlab("") + 
    ylab("Evals") + 
    stat_summary(data = a, aes(x="Total"), fun.y = "mean", colour = "yellow", size = 3, geom = "point") + 
    stat_summary(data = p, aes(x="PR"), fun.y = "mean", colour = "yellow", size = 3, geom = "point") + 
    stat_summary(data = f, aes(x="FM"), fun.y = "mean", colour = "yellow", size = 3, geom = "point") 

Результат :

enter image description here

+0

Спасибо за начало, но я продолжаю получать ошибку «Ошибка: ggplot2 не знает, как бороться с данными целочисленного класса». Любые советы здесь будут очень признательны! – user6019758

+0

@ user6019758 ggplot работает только с dataframes. Попробуйте преобразовать свои данные в фреймворк данных, это я сделал в ответ. Это помогает? – RHA

+0

Да! Также необходимо было изменить имена в столбцах фрейма данных, чтобы они были одинаковыми в моих трех кадре данных {names (ff) [names (ff) == 'f $ total'] <- "total"} - спасибо вам много :) – user6019758