【发布时间】:2018-02-02 11:29:42
【问题描述】:
如果轴标签包含特定文本,我会尝试将其设为粗体。我正在尝试对一个绘图执行此操作,该绘图是一个也操纵我的数据的函数的输出,因此我的输入数据与输出中标签的顺序之间不再有直接关系。所以添加theme(axis.text.y = element_text(face = ifelse(levels(df$category) == "xxx", "bold", "plain"))) 不起作用(它会将错误的标签变为粗体)。
作为一个具体的例子,如果我只是将 this box plot 的花瓣长度按虹膜物种作为对象,如果我不知道物种的顺序,是否可以添加一个将“setosa”变为粗体的图层出现在?
更新:一个可重现的例子:
library(tidyverse)
library(rlang)
test <- tribble(
~AreaName, ~Value,
"London", 1,
"New York", 5,
"Paris", 3
)
compare_areas <- function(data, area, value) {
area <- enquo(area)
value <- enquo(value)
newLevels <- data[order(data[[quo_text(value)]], decreasing = TRUE), ][[quo_text(area)]]
print(newLevels)
data[[quo_text(area)]] <- factor(data[[quo_text(area)]], levels = newLevels)
print(data)
p <- ggplot(data, aes_string(x = quo_text(area),
y = quo_text(value))) +
coord_flip() +
geom_col()
return(p)
}
compare_areas(data = test,
area = AreaName,
value = Value)
Plot output。因此,例如,我想让 Paris 加粗,但我不知道级别将如何排序。
【问题讨论】: