簡體   English   中英

如何斜體和非斜體y軸標簽的一部分

[英]how to italics and non-italics the part of y axis labels

我正在使用 ggplot2 制作一個 plot ,其中物種名稱為 y 軸標簽,例如:

data_1 <- data.frame(
   name = c("1_Enterococcus faecalis_ab1", "3_Bifidobacterium longum_ab2", "5_Bifidobacterium breve_ab12"),
   value = c(1, 3, 5)
) 
data_2 <- data.frame(
   name = c("1_Enterococcus faecalis_ab1", "3_Bifidobacterium longum_ab2", "5_Bifidobacterium breve_ab12"),
   value = c(3, 5, 3)
)
ggplot()+geom_point(data=data_1,aes(x=value,y=name))+geom_point(data=data_2,aes(x=value,y=name))

我想在 y 標簽中制作斜體物種名稱,如 1_ Enterococcus faecalis _ab1。 我看到R ggplot2 在同一類別中使用斜體和非斜體 label的答案,但仍然無法做到。

有什么想法嗎? 謝謝

我們可以使用ggtext方法

library(dplyr)
library(ggtext)
library(stringr)
library(ggplot2)
data %>% 
     mutate(name = str_replace(name, "(\\d+)_([^)]+)_(.*)$", "\\1_*\\2*_\\3")) %>%
     ggplot(aes(value, name)) + 
       geom_point() +
       theme(axis.text.y = element_markdown())
library(ggtext)
library(tidyverse)
data %>%
  separate(name, c("num", "binomial", "label"), sep = "_") %>%
  mutate(name_fmt = paste0(num, "_*", binomial, "*_", label)) %>%
  
  ggplot(aes(x=value,y=name_fmt)) + geom_point() +
  theme(axis.text.y = element_markdown())

在此處輸入圖像描述

編輯 - 如果您有兩個格式相似的表格,最簡單的方法是綁定它們並將格式化代碼應用於該表格:

bind_rows(data_1, data_2, .id = "src") %>%
  separate(name, c("num", "binomial", "label"), sep = "_") %>%
  mutate(name_fmt = paste0(num, "_*", binomial, "*_", label)) %>%
  
  ggplot(aes(x=value,y=name_fmt, color = src)) + geom_point() +
  theme(axis.text.y = element_markdown())

如果結構不同,我建議將格式分別應用於兩個數據表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM