Если честно, я бы не стал использовать ggpubr
здесь. Оставаться в синтаксисе ggplot часто безопаснее. А также, возможно, меньше кода ... (Кроме того, не используйте факторы в этом случае, как прокомментировал пользователь teunbrand)
Два хороших варианта для горизонтальных полос:
library(tidyverse)
library(ggstance)
library(ggsci)
Опция 1 - использоватьordin_flip
ggplot(df2, aes(fct_reorder(genes, perc), perc, fill = role)) +
geom_col() +
geom_text(aes(label = perc), hjust = 0) +
scale_fill_npg() +
coord_flip(ylim = c(0,100)) +
theme_classic() +
theme(legend.position = 'top') +
labs(x = 'gene', y = 'percent')
![](https://i.imgur.com/ls25h8K.png)
Опция 2 - использовать пакет ggstance Я предпочитаю вариант 2, потому что использование ggstance допускает более гибкую комбинацию с другими графиками
ggplot(df2, aes(perc, fct_reorder(genes, perc), fill = role)) +
geom_colh() +
geom_text(aes(label = perc), hjust = 0)+
scale_fill_npg() +
coord_cartesian(xlim = c(0,100)) +
theme_classic() +
theme(legend.position = 'top')+
labs(x = 'gene', y = 'percent')
![](https://i.imgur.com/0DACzN3.png)
Создано в 2020-03-27 пакетом Представить ( v0.3.0)
data
df2 <- read_delim("genes;perc;role
GATA-3;7,9;confirmed in this cancer
CCDC74A;6,8;prognostic in this cancer
LINC00621;6,1;none
POLRMTP1;4,1;none
IGF2BP3;3,2;confirmed in this cancer", ";") %>% rownames_to_column("name")