I have created a custom ggplot2 fill/colour scale as a wrapper around discrete_scale, the only parameter in the ggplot2 scale function that wraps around discr
discrete_scale
discr