gpt4 book ai didi

r - 使用 ggplot2 以粗体突出显示单个轴标签

转载 作者:行者123 更新时间:2023-12-04 02:36:45 27 4
gpt4 key购买 nike

我想以粗体突出显示各个轴标签。我知道这个 answer @MrFlick 但我不知道怎么做 a) 对于不止一件商品,以及 b) 是否可以使用标签的名称而不是该列表(或表达式)中的项目编号。

这是一个示例数据集:

require(ggplot2)
require(dplyr)
set.seed(36)
xx<-data.frame(YEAR=rep(c("X","Y"), each=20),
CLONE=rep(c("A","B","C","D","E"), each=4, 2),
TREAT=rep(c("T1","T2","T3","C"), 10),
VALUE=sample(c(1:10), 40, replace=T))

然后我根据一个特定的因素组合对我的标签进行排序,然后应该在一个图的多个面板上维护它。看我之前的问题 here .
clone_order <- xx %>% subset(TREAT == "C"  & YEAR == "X") %>%
arrange(-VALUE) %>% select(CLONE) %>% unlist()
xx <- xx %>% mutate(CLONE = factor(CLONE, levels = clone_order))

ggplot(xx, aes(x=CLONE, y=VALUE, fill=YEAR)) +
geom_bar(stat="identity", position="dodge") +
facet_wrap(~TREAT)

enter image description here

现在我要加粗 Clone A , BE .我相信这会以某种方式起作用,但我不知道如何。理想情况下,通过 知道如何做到这一点会很棒。 a) 使用列表/表达式中的项目编号,以及 b) 通过使用标签,例如 A , BE .

最佳答案

这是创建 emboldening 矢量的通用方法:

colorado <- function(src, boulder) {
if (!is.factor(src)) src <- factor(src) # make sure it's a factor
src_levels <- levels(src) # retrieve the levels in their order
brave <- boulder %in% src_levels # make sure everything we want to make bold is actually in the factor levels
if (all(brave)) { # if so
b_pos <- purrr::map_int(boulder, ~which(.==src_levels)) # then find out where they are
b_vec <- rep("plain", length(src_levels)) # make'm all plain first
b_vec[b_pos] <- "bold" # make our targets bold
b_vec # return the new vector
} else {
stop("All elements of 'boulder' must be in src")
}
}

ggplot(xx, aes(x=CLONE, y=VALUE, fill=YEAR)) +
geom_bar(stat="identity", position="dodge") +
facet_wrap(~TREAT) +
theme(axis.text.x=element_text(face=colorado(xx$CLONE, c("A", "B", "E"))))

关于r - 使用 ggplot2 以粗体突出显示单个轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39694490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com