R语言 如何删除非常细的条形图轮廓/边框

gcuhipw9  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(489)

我想删除条形图边缘的这些线条。我使用的是phyloseq库。这是我的代码,我尝试将color/color/col更改为“NA”,结果是一样的。我只是不喜欢那个小的黑色轮廓。

library(phyloseq)
data("GlobalPatterns")
gp.ch <- subset_taxa(GlobalPatterns, Phylum == "Spirochaetes")
p <- plot_bar(gp.ch, fill = "Phylum") 
p + geom_bar(stat = "identity") + scale_fill_manual(values = cbPalette)

qmb5sa22

qmb5sa221#

你的问题出在phyloseq包里的plot_bar()函数里--里面的边框是黑色的。你可以用额外的参数-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")

相关问题