Примечание: Конвенция о SO является то, что «ответы» зарезервированы для воспроизводимой кода, который демонстрирует решение, что меньше (как предложение) принадлежит в комментарии. . Вот почему так важно, чтобы собеседники предоставить свои данные как часть вопроса, в противном случае мы должны сделать некоторые для вас, что большинство людей (оправданно) не желаем делать
ответ вы спросили. для ниже, но прежде чем вникать в это, вы должны знать, что стандартная цветовая схема ggplot
тщательно выбрана, поэтому вы должны ее изменить только в том случае, если есть веская причина. что человеческая эволюция вызвала определенные цвета (например, красный), чтобы получить перцептивное усиление по сравнению с другими цветами. Поэтому, если у вас есть красная кривая и черная кривая, красная кривая оставляет сильное впечатление. Этот факт широко используется в определенных областях (например, в рекламе), чтобы психологически манипулировать зрителем, но ему нет места в визуализации научных данных. ggplot
по умолчанию, которые основаны на цветовой системе HCL (которая, в свою очередь, основана на Munsell color system), постарайтесь достичь двух целей: создать цветовую палитру, где каждый цвет максимально различим от всех других цветов и выравнивать относительное перцептивное воздействие. Существует довольно техническое обсуждение этой темы here и некоторые интересные примеры here.
Нижняя линия: не меняйте цвета, если у вас нет повода для этого.
Сказав все это, простой ответ на ваш вопрос заключается в использовании scale_color_manual(...)
, как показано ниже:
# all this to set up the example - you have this already
set.seed(1) # for reproducible example
x <- rep(c(1,2,4,8,11,14), each=5)
df1 <- data.frame(Day=x,Control=125*(1-exp(-x/5))+rnorm(30,sd=25),Supp="N")
df2 <- data.frame(Day=x,Control=90*(1-exp(-x/3))+rnorm(30,sd=25),Supp="C")
plasma1 <- aggregate(Control~Day+Supp,rbind(df2, df1), FUN=function(x)c(Control=mean(x),SEMcontrol=sd(x)/sqrt(length(x))))
plasma1 <- data.frame(plasma1[,1:2],plasma1[[3]])
# you start here
library(ggplot2)
ggp <- ggplot(plasma1, aes(x=Day, y=Control, color=Supp))+
geom_point(size=3, shape=21)+
geom_line(linetype="dashed")+
geom_errorbar(aes(ymax=Control+SEMcontrol, ymin=Control-SEMcontrol), width=0.3)+
theme_bw()+theme(panel.grid=element_blank())
ggp + scale_color_manual(values=c(C="red",N="black"))
который производит это:
Как уже упоминалось в одном из комментариев , вы также можете использовать один из Brewer Palettes, разработанный профессором Синтия Брюэр в штате Пенн. Первоначально они предназначались для картографических приложений, но широко использовались в научной визуализации.
ggp + scale_color_brewer(palette="Set1")
Посмотрите на scale_colour_manual. – Heroka
как насчет использования аргумента 'colour' в' geom_line' – pcantalupo
Попробуйте добавить '+ scale_color_manual (значения = c (C =" красный ", N =" черный "))' в определение ggplot. – jlhoward