Ошибка 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 веб-сайта, и не хочу, чтобы графики выходили из строя, когда есть некоторые неправильные уровни (это может происходить, пока мы не исправим базу данных).
Пока что я нашел обходной путь (см. Мой ответ), но мне интересно, есть ли какое-нибудь решение более элегантное.