有没有可能改变facet_wrap变量的标签,如下所示。例如,我想要将
换句话说,我是否有任何自由来任意标记facet_wrap?就像ggplot2中的x美学变量可以在数据框(mtcars)中具有某些名称(例如cyl),但我仍然可以使用labs(x="cylinder")替换它一样。我希望对于facet_wrap也能有类似的功能。
cyl:4
、cyl:6
、cyl:8
改为condition:4
、condition:6
、condition:8
。当然,我可以通过重命名变量来实现这个目标,但这不是我想要的。这是一个更简单的自定义函数的版本,在这个函数中,我不能随意重命名变量。换句话说,我是否有任何自由来任意标记facet_wrap?就像ggplot2中的x美学变量可以在数据框(mtcars)中具有某些名称(例如cyl),但我仍然可以使用labs(x="cylinder")替换它一样。我希望对于facet_wrap也能有类似的功能。
library(dplyr)
library(datasets)
library(ggplot2)
data(mtcars)
# creating a dataframe
df <- dplyr::group_by(mtcars, .dots = c('cyl', 'am')) %>%
dplyr::summarize(counts = n()) %>%
dplyr::mutate(perc = (counts / sum(counts)) * 100) %>%
dplyr::arrange(desc(perc))
# preparing the plot
ggplot2::ggplot(df, aes('', counts)) +
geom_col(
position = 'fill',
color = 'black',
width = 1,
aes(fill = factor(am))
) +
facet_wrap(~cyl, labeller = "label_both") + # faceting by `cyl` variable
geom_label(
aes(label = paste0(round(perc), "%"), group = factor(am)),
position = position_fill(vjust = 0.5),
color = 'black',
size = 5,
show.legend = FALSE
) +
coord_polar(theta = "y")
这段文字是由reprex包(v0.2.0)于2018年2月19日创建的。
它工作得很好。只是除了指定“标题”,“标题”和“图例标题”之外,我还希望用户能够以任何他们喜欢的方式重命名“facet_wrap”变量。由于目前的情况总是转换为名称“condition”。 - Indrajeet Patil
lab <- paste0(custom_name, ": ", lev)
你能否编辑这段代码以备将来参考或其他读者使用? - Indrajeet PatilsessionInfo()
。我会更新来自工作电脑的sessionInfo()
。之前编辑过答案的部分是在工作电脑上完成的。 - missuse