| 결과물 미리보기
미생물 데이터를 시각화할 때, 각 미생물의 종속명은 이탤릭체로 표시하는 것이 정석이다.
이는 각 데이터를 *~*로 표시한 후에, ggtext패키지를 이용해서 markdown문법을 적용하면 된다.
그러나 표시해야될 값에 Bacteria Unclassified도 있고, 여러 변수가 존재한다. 이때 조건에 맞추어서 일부 글자에만 따로 기울임체를 표시하고 싶을 때 사용할 수 있는 함수로는 wilkoxmisc패키지의 binom() 함수가 있다.
| 설치
install_github('wilkox/wilkoxmisc')
library(wilkoxmisc)
library(ggtext) # 필수!
library(ggplot2)
| 예제 데이터
Species= c("Deinococcus-Thermus geothermalis",
"candidatus liberibacter solanacearum",
"Staphylococcus aureus",
"staphylococcus epidermidis",
"Bacteria unclassified")
set.seed(42)
Abundance = runif(n=5*5, min = 0, max = 1)
df <- data.frame(
Species,
Abundance
)
df
# Species Abundance
# 1 Deinococcus-Thermus geothermalis 0.91480604
# 2 candidatus liberibacter solanacearum 0.93707541
# 3 Staphylococcus aureus 0.28613953
# 4 staphylococcus epidermidis 0.83044763
# 5 Bacteria unclassified 0.64174552
# 6 Deinococcus-Thermus geothermalis 0.51909595
# 7 candidatus liberibacter solanacearum 0.73658831
# 8 Staphylococcus aureus 0.13466660
# 9 staphylococcus epidermidis 0.65699229
# 10 Bacteria unclassified 0.70506478
# 11 Deinococcus-Thermus geothermalis 0.45774178
# 12 candidatus liberibacter solanacearum 0.71911225
# 13 Staphylococcus aureus 0.93467225
# 14 staphylococcus epidermidis 0.25542882
# 15 Bacteria unclassified 0.46229282
# 16 Deinococcus-Thermus geothermalis 0.94001452
# 17 candidatus liberibacter solanacearum 0.97822643
# 18 Staphylococcus aureus 0.11748736
# 19 staphylococcus epidermidis 0.47499708
# 20 Bacteria unclassified 0.56033275
# 21 Deinococcus-Thermus geothermalis 0.90403139
# 22 candidatus liberibacter solanacearum 0.13871017
# 23 Staphylococcus aureus 0.98889173
# 24 staphylococcus epidermidis 0.94666823
# 25 Bacteria unclassified 0.08243756
각 학명에 따른 여러 abundance값을 볼 수 있다.
| 적용
1. binom 함수 적용하기
df %>%
mutate_at("Species", binom) %>%
mutate(Species = fct_reorder(Species, Abundance)) %>%
head()
# Species Abundance
# 1 *Deinococcus-Thermus geothermalis* 0.9148060
# 2 *candidatus liberibacter solanacearum* 0.9370754
# 3 *Staphylococcus aureus* 0.2861395
# 4 *staphylococcus epidermidis* 0.8304476
# 5 *Bacteria* unclassified 0.6417455
# 6 *Deinococcus-Thermus geothermalis* 0.5190959
각 조건에 따라 이텔릭체로 적용되는 학명은 *~* 안에 표기되었다.
이제 ggtext함수의 element_markdown()을 적용하면 글씨가 기울임체로 표시된다.
2.ggplot으로 확인하기
df %>%
mutate_at("Species", binom) %>%
mutate(Species = fct_reorder(Species, Abundance)) %>%
ggplot(aes(x = Species, y = Abundance)) +
geom_boxplot() +
coord_flip() +
theme(axis.text.y = element_markdown(), plot.title = element_markdown()) +
labs(x = "Species",
y = "Relative abundance (%)")
잘 적용된것을 볼 수 있다.
반응형