Чтобы раскрасить поле, вам нужно передать вектор цветов как col
. Есть несколько способов продолжить, если вы хотите использовать столбец species
, один из способов - использовать уникальные уровни вашего этого столбца (причина species
класса factor
):
boxplot(log10length~species, data=genes, las=1, horizontal=TRUE, xlab=ylab, col = as.numeric(unique(genes$species)))
Если вы сделаете это, и если вы используете цветовую палитру по умолчанию, вы поймете, что species
как 9 уровней, тогда как палитра по умолчанию, состоящая только из 8 цветов и поэтому черного, будет использоваться дважды. Чтобы настроить палитру, вы можете использовать palette()
и использовать нужный цветовой вектор: вы можете использовать шестнадцатеричный код для цвета или любое имя цвета, которое вы можете увидеть, используя colors()
(см. https://www.datamentor.io/r-programming/color/ Больше подробностей). Например, вы можете использовать следующее.
palette(c("orange", "grey50", "brown2", "#eecd40", "darkgreen", "#26adba", "#4665e7", "#fa7fd0", "#a61932"))
boxplot(log10length~species, data=genes, las=1, horizontal=TRUE, xlab=ylab, col = as.numeric(unique(genes$species)))
Обратите внимание, что порядок цвета будет зависеть от порядка уровней фактора. Кроме того, вы можете напрямую использовать вектор цвета в boxplot
boxplot(log10length~species, data=genes, las=1, horizontal=TRUE, xlab=ylab, col = c("orange", "grey50", "brown2", "#eecd40", "darkgreen", "#26adba", "#4665e7", "#fa7fd0", "#a61932"))
Наконец, есть пакет, который предоставляет цветовую палитру, например RColorBrewer .