使用这些数据我拟合一个情节:
p <- ggplot(dat, aes(x=log(Explan), y=Response)) +
geom_point(aes(group=Area, colour=Area))+
geom_abline(slope=-0.062712, intercept=0.165886)+
geom_abline(slope= -0.052300, intercept=-0.038691)+
scale_x_continuous("log(Mass) (g)")+
theme(axis.title.y=element_text(size=rel(1.2),vjust=0.2),
axis.title.x=element_text(size=rel(1.2),vjust=0.2),
axis.text.x=element_text(size=rel(1.3)),
axis.text.y=element_text(size=rel(1.3)),
text = element_text(size=13)) +
scale_colour_brewer(palette="Set1")
Run Code Online (Sandbox Code Playgroud)
这两个斜线表示每个区域趋势的系统发生调整的关系.我想知道,是否有可能在相应的调色板中获得与其适当的区域数据相同的缩写?第一个指定用于区域A,第二个用于区域B.
我用了:
g <- ggplot_build(p)
Run Code Online (Sandbox Code Playgroud)
找出第一种颜色是#E41A1C,第二种颜色是#377EB8,但是当我尝试在+ geom_abline命令中使用aes来指定这些颜色时
p <- ggplot(dat, aes(x=log(Explan), y=Response)) +
geom_point(aes(group=Area, colour=Area))+
geom_abline(slope=-0.062712, intercept=0.165886,aes(colour='#E41A1C'))+
geom_abline(slope= -0.052300, intercept=-0.038691,aes(colour=#377EB8))+
scale_x_continuous("log(Mass) (g)")+
theme(axis.title.y=element_text(size=rel(1.2),vjust=0.2),
axis.title.x=element_text(size=rel(1.2),vjust=0.2),
axis.text.x=element_text(size=rel(1.3)),
axis.text.y=element_text(size=rel(1.3)),
text = element_text(size=13)) +
scale_colour_brewer(palette="Set1")
Run Code Online (Sandbox Code Playgroud)
它会改变点的颜色并添加到图例中,我不想这样做.
任何建议将不胜感激!
Did*_*rts 12
由于您直接设置颜色,因此您不需要aes()使用colour='#E41A1C'.
+geom_abline(slope=-0.062712, intercept=0.165886,colour='#E41A1C')
Run Code Online (Sandbox Code Playgroud)
如果您正在读取线条的颜色以与从"区域"映射的点设置的颜色相对应,则可以使用适当的区域值来映射这些颜色.
例如
geom_abline(slope=-0.062712, intercept=0.165886,aes(colour='A')) +
geom_abline(slope= -0.052300, intercept=-0.038691,aes(colour='B'))
Run Code Online (Sandbox Code Playgroud)
这有额外的好处,如果你改变颜色方案它将是一致的.
第二种方法是传递包含斜率和截距和区域的data.frame,例如
cc <- data.frame(sl = c(-0.062712,-0.052300),
int = c(0.165886,-0.038691),
Area = c('A','B'))
Run Code Online (Sandbox Code Playgroud)
那么你可以map在slope,intercept并colour以单个呼叫内geom_abline
例如
p <- ggplot(dat, aes(x=log(Explan), y=Response)) +
geom_point(aes(group=Area, colour=Area))+
geom_abline(data = cc, aes(slope =sl, intercept = int,colour = Area)) +
scale_x_continuous("log(Mass) (g)")+
theme(axis.title.y=element_text(size=rel(1.2),vjust=0.2),
axis.title.x=element_text(size=rel(1.2),vjust=0.2),
axis.text.x=element_text(size=rel(1.3)),
axis.text.y=element_text(size=rel(1.3)),
text = element_text(size=13)) +
scale_colour_brewer(palette="Set1")
p
Run Code Online (Sandbox Code Playgroud)
