R 如何使用斜体和非斜体标记y轴标签的一部分
我正在使用ggplot2绘制以物种名称作为y轴标签的绘图,例如:R 如何使用斜体和非斜体标记y轴标签的一部分,r,ggplot2,R,Ggplot2,我正在使用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( n
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))
data\u 1我们可以使用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())
编辑-如果您有两个格式类似的表,则最容易绑定它们并将格式化代码应用于该表:
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())
如果结构不同,我建议将格式分别应用于两个数据表。非常感谢您的回复。如果仅使用一个数据集生成图形,则该方法有效。如果有两个数据集,如在我的问题中编辑的?用方法编辑了两个表。非常感谢回复。非常感谢回复。如果仅使用一个数据集生成图形,则该方法有效。如果有两个数据集,如我问题中编辑的?
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())