Ваша проблема в функции plot_bar()
из пакета phyloseq
- внутри черный цвет для границы.Вы можете просто создать свою функцию подобным образом с дополнительным параметром - border_color
или без него.
plot_bar_2 <- function (physeq, x = "Sample", y = "Abundance", fill = NULL, title = NULL, facet_grid = NULL, border_color = NA)
{
mdf = psmelt(physeq)
p = ggplot(mdf, aes_string(x = x, y = y, fill = fill))
p = p + geom_bar(stat = "identity", position = "stack", color = border_color)
p = p + theme(axis.text.x = element_text(angle = -90, hjust = 0))
if (!is.null(facet_grid)) {
p <- p + facet_grid(facet_grid)
}
if (!is.null(title)) {
p <- p + ggtitle(title)
}
return(p)
}
и вызвать
library(phyloseq)
data("GlobalPatterns")
gp.ch <- subset_taxa(GlobalPatterns, Phylum == "Spirochaetes")
p <- plot_bar_2(gp.ch, fill = "Phylum")
p + geom_bar(stat = "identity") + scale_fill_manual(values = cbPalette)
или с любым другим цветом границы, если хотите
p <- plot_bar_2(gp.ch, fill = "Phylum", border_color = "red")