【问题标题】:how to italics and non-italics the part of y axis labels如何将y轴标签的部分斜体和非斜体
【发布时间】:2021-05-13 23:27:43
【问题描述】:

我正在使用ggplot2做一个以物种名称为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 using italics and non-italics in the same category label的答案,但还是做不到。

有什么想法吗?谢谢

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:
    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())
    

    如果结构不同,我建议将格式分别应用于两个数据表。

    【讨论】:

    • 非常感谢您的回复。如果只有一个数据集用于生成图形,它就可以工作。如果有两个数据集,如我的问题中编辑的那样?
    【解决方案2】:

    我们可以使用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())
    

    【讨论】:

    • 非常感谢您的回复。如果只有一个数据集用于生成图形,它就可以工作。如果有两个数据集,如我的问题中编辑的那样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多