如何删除ggplot2中的特定刻度标签?

问题描述 投票:0回答:1

我有以下bubble plot,显示了不同样品中微生物的丰度百分比。但是,我想删除称为“ Archaea”和“其他类群”的刻度标签(位于气泡图的两端),因为这两个标签都可以放置在x轴带状文本中。我使用下面的代码来生成图:

ggplot(En.TaxMisc.NoC.RelAb.filtered.tidy$CombinedMisc, 
       aes(x = factor(Taxonomy, levels = En.TaxMisc.order$Taxonomy), 
           y = SampleSource, size = RelAb)) + 
  geom_point(colour = '#abd9e9') + 
  facet_grid(SampleType ~ Level, 
             labeller = labeller(SampleType = SampleType.NoC.labels),
             scale = 'free', space = 'free') +
  scale_x_discrete(name = NULL) +
  scale_y_discrete(position = 'left', name = NULL) +
  scale_size_continuous(name = str_wrap('Relative abundances (%)', width = 10),                                        
                        breaks = c(1:8), range = c(0.75, 20)) +
  guides(size = guide_legend(nrow = 1)) + 
  theme(legend.position = 'bottom', 
        legend.background = element_rect(colour = 'grey70'),
        legend.title = element_text(size = 8, hjust = 1),
        legend.text = element_text(size = 7, hjust = 0),
        legend.spacing.x = unit(2.5, 'mm'),
        legend.box = 'horizontal',
        strip.background = element_rect(colour = 'grey55'),
        strip.text.x = element_text(size = 8),
        strip.text.y = element_text(size = 8), 
        axis.text.x.bottom = element_text(angle = 90, hjust = 1, 
                                          vjust = 0.3, size = 8),
        axis.text.y.left = element_text(size = 8),
        axis.ticks = element_blank(),
        panel.grid.major.x = element_line(linetype = 1),
        panel.border = element_rect(linetype = 1, fill = NA),
        panel.background = element_blank())

我曾尝试使用scale_x_discrete(labels = c("Archaea" = NULL, "Other taxa" = NULL),但这导致所有刻度线标签都被删除。我还研究了使用rremove()函数和axis_ticks主题组件,但似乎都没有用于指定刻度标签的参数。

我非常感谢任何人都可以给我的建议!

r ggplot2 plot
1个回答
0
投票

问题中有很多无关紧要的细节,但是,如果您只是想删除(或自定义!)刻度标签,则只需在labels上添加scale_x_discrete参数。

独立示例:

library(ggplot2)
ds = data.frame(
  xVar = as.factor(rep(LETTERS[1:5],10)),
  y = rnorm(50)
)
my_custom_labels = c("","level B","level C","level D!","")

ggplot(data = ds) +
  geom_point(aes(x = xVar,y = y)) +
  scale_x_discrete(labels = my_custom_labels)
© www.soinside.com 2019 - 2024. All rights reserved.