Ошибка ggplot2: недостаточно значений в ручном масштабе

Когда у вас меньше цветов, определенных сscale_fill_manual чем уровни в факторе,ggplot2 жалуется с этим сообщением об ошибке:

# Basic definition of the plot
plot <- ggplot(s4r, aes(x=DIM, y=nbexpress, fill=DIM))

# Printing plot and options
plot + geom_bar(stat="identity", show_guide=FALSE) + 
  scale_fill_manual(values=c("#CC0000", "#006600", "#669999", "#00CCCC", 
                             "#660099", "#CC0066", "#FF9999", "#FF9900")

Показывает:

Error: Insufficient values in manual scale. 10 needed but only 8 provided.

Как избежать этой ошибки? Это особенно важно для меня, потому что я работаю на сервере с динамическими данными и R, встроенными в CMS веб-сайта, и не хочу, чтобы графики выходили из строя, когда есть некоторые неправильные уровни (это может происходить, пока мы не исправим базу данных).

Пока что я нашел обходной путь (см. Мой ответ), но мне интересно, есть ли какое-нибудь решение более элегантное.

Ответы на вопрос(2)

Ваш ответ на вопрос