Как удалить указанные метки c в ggplot2? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть следующий пузырьковый график , который показывает процентное содержание микробов в разных образцах. Однако я хочу удалить метки «Археи» и «Другие таксоны» (расположенные на обоих концах пузырькового графика), поскольку метки для обоих можно вместо этого поместить в текст на полосе оси 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, но ни у одного из них нет аргументов для указания меток тиков.

Буду признателен за предложения или советы, которые кто-нибудь может дать мне!

1 Ответ

2 голосов
/ 25 апреля 2020

В этом вопросе есть немало посторонних деталей, но если вы просто хотите удалить (или настроить!) Метки тиков, все, что вам нужно, это добавить аргумент 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...