gpt4 book ai didi

r - 在ggplot2中动态格式化单个轴标签

转载 作者:行者123 更新时间:2023-12-04 03:26:52 26 4
gpt4 key购买 nike

这可能最终是一个expressioncall问题,但是我试图有条件地格式化各个轴标签。

在以下示例中,我想选择性地加粗其中一个轴标签:

library(ggplot2)

data <- data.frame(labs = c("Oranges", "Apples", "Cucumbers"), counts = c(5, 10, 12))

ggplot(data = data) +
geom_bar(aes(x = labs, y = counts), stat="identity")`

存在类似的问题 here,但是解决方案涉及 themeelement_text。我正在尝试直接使用轴标签。

我可以手动执行以下操作:
breaks <- levels(data$labs)
labels <- breaks
labels[2] <- expression(bold("Cucumbers"))

ggplot(data = data) +
geom_bar(aes(x = labs, y = counts), stat="identity") +
scale_x_discrete(label = labels, breaks = breaks)

但是,如果我尝试通过建立索引而不是键入“ cucumber ”来执行此操作,则会出现以下错误:
breaks <- levels(data$labs)
labels <- breaks
labels[2] <- expression(bold(labels[2]))

ggplot(data = data) +
geom_bar(aes(x = labs, y = counts), stat="identity") +
scale_x_discrete(label = labels, breaks = breaks)



这是有道理的,因为它没有评估 labels[2]。但是,有谁知道如何强制它做到这一点?谢谢。

最佳答案

怎么样

breaks <- levels(data$labs)
labels <- as.expression(breaks)
labels[[2]] <- bquote(bold(.(labels[[2]])))

ggplot(data = data) +
geom_bar(aes(x = labs, y = counts), stat="identity") +
scale_x_discrete(label = labels, breaks = breaks)

在这里,我们对转换到表达式更为明确,我们使用 bquote()将标签的值插入表达式本身。

关于r - 在ggplot2中动态格式化单个轴标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30035955/

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