我试图覆盖一些ggplot条带中的文本以包含希腊字符。这是一些示例数据,以及图表的基础。
dfr <- data.frame(
x = rep(1:10, times = 6),
y = runif(60),
fx = rep(c("foo", "bar"), each = 30),
fy = rep(c("alpha", "beta", "gamma"), each = 10, times = 2)
)
p <- ggplot(dfr, aes(x, y)) + geom_point()
我对情节的第一次尝试在条形标签上没有希腊语。
p + facet_grid(fy ~ fx)
我认为我应该向facet_grid
添加一个贴标签参数来覆盖文本。我假设这应该吐出一个表达式来处理希腊字符,但我的代码只是在打印图形时抛出错误。
lbl <- function(variable, value)
{
if(variable == "fy") parse(text=as.character(value)) else value
}
p + facet_grid(fy ~ fx, labeller = lbl)
Error in aperm(X, c(s.call, s.ans)) :
unimplemented type 'expression' in 'aperm'
我应该如何创建条带标签?
答案 0 :(得分:9)
试试这个:
p + facet_grid(fy ~ fx, labeller = label_parsed)
答案 1 :(得分:3)
在此发布此内容,因为它与之相关:
如果您希望将变量本身的名称以及变量的级别/值作为表达式进行求值(即呈现为乳胶),请尝试:
label_parseall <- function(variable, value) {
plyr::llply(value, function(x) parse(text = paste(variable,
x, sep = "==")))
}
示例:
data <- data.frame(x = runif(10), y = runif(10),
gamma = sample(c("gamma[0]", "gamma[1]"), 10, rep = T))
ggplot(data, aes(x, y)) + geom_point() + facet_grid(~gamma,
labeller = label_parselabel)
的图片