2 回答
TA贡献1779条经验 获得超6个赞
不用设置colour和fill,而是使用几何美学来 映射它们aes,然后使用scale_xxx_manual或scale_xxx_identity。
例如
ggplot()+geom_ribbon(data=ribbon,aes(ymin=min,ymax=max,x=x.ribbon,fill='lightgreen'))+
geom_line(data=ribbon,aes(x=x.ribbon,y=avg,color='black'))+
geom_line(data=data,aes(x=x,y=new.data,color='red'))+
xlab('x')+ylab('density') +
scale_fill_identity(name = 'the fill', guide = 'legend',labels = c('m1')) +
scale_colour_manual(name = 'the colour',
values =c('black'='black','red'='red'), labels = c('c2','c1')
请注意,您必须指定guide = 'legend'强制scale_..._identity生成图例。
scale_...manual您可以为值传递命名向量-名称应为调用中的颜色geom_...,然后可以很好地标记。
)
TA贡献1844条经验 获得超8个赞
顺便说一句,为进一步澄清,我会说:geom_line(aes(..., color = 'a')...)
然后scale_color_manual(..., values = c('a' = 'black', ...))
。这样一来,很明显,其中的字符串aes(color = 'string')
只是一个绑定,实际颜色将是您在中定义的颜色scale_color_manual()
。
- 2 回答
- 0 关注
- 588 浏览
添加回答
举报