Я пытаюсь отобразить переменную «между субъектами» и переменную «внутри субъектов» на том же графике, используя Alpha для обозначения переменной «внутри субъекта» и заливки для обозначения переменной «между субъектами».
Для этого я использовал команду scale_alpha_manual
, чтобы указать, какой уровень переменной должен быть прозрачным, а какой - нормальным. Раньше он работал нормально, но потом я обновил ggplot2, и теперь я получаю следующее сообщение об ошибке:
Error in alpha * 255 : non-numeric argument to binary operator
Это происходит только тогда, когда я использую scale_alpha_manual
, так что я почти уверен, что именно здесь возникает проблема от. Есть ли способ обойти это?
Вот код для моего графика:
ggplot(data=EPM_Dur_mean, aes(x=as.factor(Condition),y=meanDur, group=Condition, fill=Condition)) +
geom_bar(data=EPM_Dur_mean, aes(alpha=Arm),show.legend=FALSE, stat="identity", position= position_dodge2(width=0.2)) +
geom_errorbar(data=EPM_Dur_mean, aes(ymin=meanDur-se,ymax=meanDur+se), position=position_dodge2(width=0.5,padding=0.5), show.legend=FALSE) +
theme_classic(base_size=20) +
scale_alpha_manual(values=c("Open"="0.3", "Closed"="1"))+
scale_fill_manual(values = c("Adol_0"="#0c2c84","Adol_50"="#c7e9b4", "Adult_0"="#49006a","Adult_50"="#fa9fb5"))+
scale_x_discrete(limits=c("Adol_0", "Adol_50", "Adult_0","Adult_50"), labels=c("0","50","0","50"))+
labs(x="", y="Duration (s)")+
geom_point(data=EPM_50, aes(x=Condition, y=Duration, group=Condition, color=Condition, shape=Cohort, alpha=Arm, size=3),position_dodge2(width=0.5), stat="identity")
График должен выглядеть следующим образом: