gpt4 book ai didi

r - 无法有条件地在ggplot中使轴标签加粗

转载 作者:行者123 更新时间:2023-12-05 09:00:40 26 4
gpt4 key购买 nike

我正在尝试根据来自不同列的条件将选择轴标签设为粗体。在下面的代码中,如果 Signif 等于 1,则 Predictor 轴文本应为粗体。此外,段应按 Value 递增值的顺序出现。

但是,此代码并未将任何轴文本更改为粗体。

library(tidyverse)
library(ggtext)
library(glue)

df <- tibble(Predictor = c("Blue","Red","Green","Yellow"),
Value = c(1,3,2,4),
Signif = c(0,1,0,1))

df <- df %>% mutate(Predictor = ifelse(Signif==1,
glue("<span style = 'font-weight:bold'>{Predictor}</span>"),
glue("<span style = 'font-weight:plain'>{Predictor}</span>"))
)

df %>%
arrange(desc(Value)) %>%
mutate(Predictor=factor(Predictor,
levels=df$Predictor[order(df$Value)])) %>%
ggplot(aes(x=Predictor, y=Value)) +
geom_segment(aes(xend=Predictor, yend=0)) +
theme(axis.text.x = element_markdown())

enter image description here

如果我在最后一行使用 element_text(),并跳过上面的 mutate to markdown 步骤:

df %>% 
arrange(desc(Value)) %>%
mutate(Predictor=factor(Predictor,
levels=df$Predictor[order(df$Value)])) %>%
ggplot(aes(x=Predictor, y=Value)) +
geom_segment(aes(xend=Predictor, yend=0)) +
theme(axis.text.x = element_text(face = if_else(df$Signif==1, "bold", "plain")))

它加粗了第 2 和第 4 个轴标签,对应于原始 df 中的 Signif 等于 1。

enter image description here

如何让正确的轴文本标签以粗体显示?

最佳答案

我希望你的代码能正常工作,但你可以使用 <b>而不是 <span style...> :

library(tidyverse)
library(ggtext)
library(glue)

df <- df %>%
mutate(Predictor = ifelse(Signif==1,
glue("<b>{Predictor}</b>"),
Predictor))

df %>%
arrange(desc(Value)) %>%
mutate(Predictor=factor(Predictor,
levels=df$Predictor[order(df$Value)])) %>%
ggplot(aes(x=Predictor, y=Value)) +
geom_segment(aes(xend=Predictor, yend=0)) +
theme(axis.text.x = element_markdown())

关于r - 无法有条件地在ggplot中使轴标签加粗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75272312/

26 4 0