怎么样使用scale_fill_brewer
它利用了调色板ColorBrewer
网站,由包实现RColorBrewer
?
ggplot(diamonds, aes(clarity, fill=cut) ) +
geom_bar( ) +
scale_fill_brewer( type = "div" , palette = "RdBu" )
有许多不同的不同调色板可供您选择。
require(RColorBrewer)
?brewer.pal
如果您需要更多颜色,可以使用colorRampPalette
在某些颜色之间进行插值的功能(我会使用brewer.pal
调色板)。你可以这样做:
# Create a function to interpolate between some colours
mypal <- colorRampPalette( brewer.pal( 6 , "RdBu" ) )
# Run function asking for 19 colours
mypal(19)
[1] "#B2182B" "#C2373A" "#D35749" "#E47658" "#F0936D" "#F4A989" "#F8BFA5"
[8] "#FCD6C1" "#F3DDD0" "#E7E0DB" "#DAE2E6" "#CBE1EE" "#ADD1E5" "#90C0DB"
[15] "#72AFD2" "#5B9DC9" "#478BBF" "#3478B5" "#2166AC"
在您需要 8 种颜色的示例中,您可以像这样使用它scale_fill_manual()
:
PropBarPlot<-function(df, mytitle=""){
melteddf<-melt(df, id=names(df)[1], na.rm=T)
ggplot(melteddf, aes_string(x=names(df)[1], y="value", fill="variable")) +
geom_bar(position="fill") +
theme(axis.text.x = element_text(angle=90, vjust=1)) +
labs(title=mytitle)+
scale_fill_manual( values = mypal(8) )
}
print(PropBarPlot(df))