Я пытаюсь изменить цвет заливки точек в комбинированной гистограмме / точечной диаграмме c. У меня есть следующий код:
df <- read.csv("df.csv")
df$label <- factor(df$label, levels = c("label 1","label 2"))
df$a <- factor(df$a, levels = c("10000","NTC"))
df$b <- factor(df$b, levels = c("0","2","5","10"))
df$y <- as.numeric(df$y)
df_SE <- summarySE(df, measurevar="y", groupvars=c("label", "a", "b"), na.rm = TRUE)
p <- ggplot(df_SE, aes(x=interaction(a, b), y = y, fill=label))+
geom_bar(stat="identity", size=0.75, position=position_dodge(0.8), width = 0.7,
color="black")+
geom_errorbar(data=df_SE , aes(ymin=y-se, ymax=y+se),
position=position_dodge(0.8), size=0.5, width=.1, colour="black")+
geom_dotplot(data = df, aes(x=interaction(df$a, df$b), y = df$y),
binaxis = "y", stackdir = "center", dotsize = .35,
position =position_dodge(0.8))+
scale_fill_manual(values=c("#A6CEE3", "#1F78B4"),name= "label",labels=c("label 1","label 2"))+
scale_y_continuous(limits = c(0,30), breaks = seq(0,30,5))+
theme(panel.background = element_rect(fill = "white"),
plot.title = element_text(family = "Helvetica", face = "bold", size = (15)),
axis.text.x = element_text(family = "Helvetica",colour = "black",
size = rel(1.5)),
axis.text.y = element_text(family = "Helvetica",colour = "black",
size = rel(1.5)),
axis.title = element_text(colour="black",family = "Helvetica",
size = rel(1.5)),
legend.text = element_text(colour="black",
family = "Helvetica", size = rel(1.5)),
legend.title = element_text(colour = "black",size = rel(2),
family = "Helvetica"),
axis.line = element_line(color = "black",
size = 0.5, linetype = "solid"))+
theme(strip.text = element_text(size=13, face = 'bold'),
strip.background = element_rect(fill="white"),
axis.text.x =element_text(size=12, vjust = 0.2),
legend.text.align = 0)+
labs(x="x", y="y")+
geom_hline(yintercept = 30, color = "red")
print(p)
, который дает мне следующий график c. Graphi c вывод из предоставленного кода
Однако обратите внимание, что точки имеют тот же цвет, что и полосы, поэтому их трудно увидеть. Я хочу, чтобы они были просто черными. Я пробовал указать с помощью кода:
geom_dotplot(data = df, aes(x=interaction(df$a, df$b, fill = "black"), y = df$y),
binaxis = "y", stackdir = "center", dotsize = .35,
position =position_dodge(0.8))
, но он смещает точки столбцов на графике c, которые я либо не могу, либо не знаю, как исправить. Добавление команды fill
за пределами aes()
, как показано ниже:
geom_dotplot(data = df, aes(x=interaction(df$a, df$b) , fill = "black", y = df$y),
binaxis = "y", stackdir = "center", dotsize = .35,
position =position_dodge(0.8))
дает мне сообщение с сообщением:
«Ошибка: недостаточно значений в ручном масштабировании. Требуется 3, но только 2. "
Кто-нибудь знает, как решить эту проблему?
С уважением,