Я пытаюсь создать линейный граф из четырех условий данных, построив среднее значение каждого условия как функцию времени. Условия меняются в дизайне 2x2, поэтому я использую geom_line (синие/красные линии, которые являются сплошными/пунктирными) и geom_point (синие/красные фигуры, которые представляют собой квадраты/круги) для построения данных. Это прекрасно работает, когда я использую слои, но я хотел бы также включать планки погрешностей в каждый момент времени:ggplot2: как объединить слои geom_line и geom_point с ошибками
pd <- position_dodge(.1)
ggplot(data = df) +
geom_line(data=subset(df, condition == "A"), aes(E, avg),
colour="red", size=1) +
geom_point(data=subset(df, condition == "A"), aes(E, avg),
colour="red", shape=24, fill="white", size=5) +
geom_line(data=subset(df, condition == "B"), aes(E, avg),
colour="red", linetype="dashed",size=1) +
geom_point(data=subset(df, condition == "B"), aes(E, avg),
colour="red", shape=24, fill="red", size=5) +
geom_line(data=subset(df, condition == "C"), aes(E, avg),
colour="blue", size=1) +
geom_point(data=subset(df, condition == "C"), aes(E, avg),
colour="blue", shape=21, fill="white", size=5) +
geom_line(data=subset(df, condition == "D"), aes(E, avg),
colour="blue", linetype="dashed",size=1) +
geom_point(data=subset(df, condition == "D"), aes(E, avg),
colour="blue", shape=21, fill="blue", size=5)
Приведенный выше код работает отлично. Но если бы я затем добавить в этой строке:
+ geom_errorbar(aes(x=E, ymin=avg-se, ymax=avg+se), width=.1, position=pd)
сюжет не принимает откачивания (который был определен ранее) во внимание, и бары трудно отличить друг от друга (т.е., дублирующих друг друга). Как я могу это исправить?
Сообщение об ошибке кажется довольно ясным: вы не определяете 'x' в своем вызове' aes'. – shadow
Я в замешательстве - не код, который я вставил, определяет x в вызове aes как y = min = avg-se, ymax = avg + se? – ucsbcoding
похоже, что вы хотите что-то вроде 'aes (x = E, ymin = avg-se, ymax = avg + se)' – shadow