Я хотел бы создать график с помощью R, желательно с помощью ggplot. У меня есть следующие переменные для визуализации, большинство из них бинарные:
Пробная версия: конг/неконг
Предложение: он/себя
Состояние: нормальное/медленное
Точность: число
СЭ: номер
structure(list(TrialType = structure(c(1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L), .Label = c("congruent", "incongruent"), class = "factor"),
SentenceType = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L
), .Label = c("him", "himself"), class = "factor"), Condition = structure(c(1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("normal_speech",
"slow_speech"), class = "factor"), MeanAccuracy = c(0.794871794871795,
0.762820512820513, 0.967948717948718, 0.967948717948718,
0.237179487179487, 0.342105263157895, 0.942307692307692,
0.83974358974359), SE = c(0.0342056016493384, 0.0430264468743046,
0.0389087806837746, 0.0496183045476835, 0.0135583881898854,
0.0163760608630386, 0.0170869868584354, 0.0311270245470197
)), class = "data.frame", row.names = c(NA, -8L))
SE означает стандартную ошибку, а это означает, что я хотел бы представить планки погрешностей вокруг показателя точности.
Я решил, что мой лучший вариант — сделать две гистограммы, по одной отдельно для каждого условия с точностью по оси X. Затем четыре столбца, представляющие как возможные комбинации предложения, так и испытания, показывающие точность высоты, и столбцы ошибок, представленные вокруг этого, чтобы отразить неопределенность.
Как я мог сделать такой график? Или кто-нибудь думает, что это неправильный тип графика и что тогда будет (и как его построить...)?
Заранее спасибо!
Так? Я супер уверен, как это работает
Используя смоделированные данные на основе описания, которым вы поделились, вы можете попробовать:
library(ggplot2)
library(dplyr)
library(tidyr)
#Data
df <- data.frame(Trial=rep(c('cong','incong'),4),
Sentence= rep(c('him','himself'),4),
Condition=rep(c('normal','slow'),4),
Accuracy=runif (8,0,1),
SE=runif (8,0,10),stringsAsFactors = F)
#Plot 1
df %>% pivot_longer(-c(Trial,Sentence,Condition)) %>%
ggplot(aes(x=name,y=value,fill=Condition))+
geom_bar(stat = 'identity')+
facet_wrap(.~Trial+Sentence,scales = 'free')
Выход:
Или это:
#Plot 2
df %>% pivot_longer(-c(Trial,Sentence,Condition)) %>%
ggplot(aes(x=name,y=value,fill=Condition))+
geom_bar(stat = 'identity')+
facet_grid(Trial~Sentence,scales = 'free')
Выход:
Для понимания вашей проблемы необходимы дополнительные сведения и данные.
Привет! Спасибо, но на этих графиках SE отображается неправильно, SE касается допустимой погрешности, которая должна быть видна вокруг показателя точности.
Возможно, вы ищете что-то подобное?
library(ggplot2)
ggplot(df, aes(TrialType, MeanAccuracy, fill = SentenceType)) +
geom_col(position = position_dodge(width = 1), color = "gray50") +
geom_errorbar(aes(ymin = MeanAccuracy - SE,
ymax = MeanAccuracy + SE), width = 0.25,
position = position_dodge(width = 1)) +
scale_fill_manual(values = c("gold", "deepskyblue4")) +
facet_grid(.~Condition, switch = "x") +
theme_bw() +
theme(strip.placement = "outside",
strip.background = element_blank(),
panel.border = element_blank(),
panel.spacing = unit(0, "points"),
axis.line = element_line())
Можете ли вы показать нам фактические данные, чтобы мы могли вам помочь? Если вы введете
dput(my_dataframe)
в консоль (очевидно, заменивmy_dataframe
на то, что называется вашим собственным фреймом данных), затем отредактируйте свой вопрос, чтобы включить вывод изdput
, я уверен, что кто-то здесь может вам помочь