ggplot2:格式化图例类别
ggplot2: Formatting Legend Categories
我希望能够做这样的事情:,除了 "legend.text" 而不是 "axis.text.x"。这可能吗?
它会是这样的,除了它当前不工作(所有 labs
都是斜体):
data <- data.frame(labs = c("Oranges", "Apples", "Cucumbers"), counts = c(5, 10, 12))
ggplot(data = data) +
geom_bar(aes(x = labs, y = counts,fill=labs), stat="identity") +
theme(axis.text.x=element_text(face=ifelse(levels(data$labs)=="Cucumbers","plain","italic"))) +
theme(legend.text=element_text(face=ifelse(levels(data$labs)=="Cucumbers","plain","italic")))
您可以调整比例来绘制可以包含斜体字词的表达式,而不是弄乱主题。例如
toexpr<-function(x) {
getfun <- function(x) {
ifelse(x=="Cucumbers", "plain", "italic")
}
as.expression(unname(Map(function(f,v) substitute(f(v), list(f=as.name(f), v=as.character(v))), getfun(x), x)))
}
ggplot(data = data) +
geom_bar(aes(x = labs, y = counts,fill=labs), stat="identity") +
scale_x_discrete(breaks =levels(data$labs), labels = toexpr(levels(data$labs))) +
scale_fill_discrete(breaks=levels(data$labs), labels = toexpr(levels(data$labs))) +
theme(legend.text.align = 0)
我希望能够做这样的事情:
它会是这样的,除了它当前不工作(所有 labs
都是斜体):
data <- data.frame(labs = c("Oranges", "Apples", "Cucumbers"), counts = c(5, 10, 12))
ggplot(data = data) +
geom_bar(aes(x = labs, y = counts,fill=labs), stat="identity") +
theme(axis.text.x=element_text(face=ifelse(levels(data$labs)=="Cucumbers","plain","italic"))) +
theme(legend.text=element_text(face=ifelse(levels(data$labs)=="Cucumbers","plain","italic")))
您可以调整比例来绘制可以包含斜体字词的表达式,而不是弄乱主题。例如
toexpr<-function(x) {
getfun <- function(x) {
ifelse(x=="Cucumbers", "plain", "italic")
}
as.expression(unname(Map(function(f,v) substitute(f(v), list(f=as.name(f), v=as.character(v))), getfun(x), x)))
}
ggplot(data = data) +
geom_bar(aes(x = labs, y = counts,fill=labs), stat="identity") +
scale_x_discrete(breaks =levels(data$labs), labels = toexpr(levels(data$labs))) +
scale_fill_discrete(breaks=levels(data$labs), labels = toexpr(levels(data$labs))) +
theme(legend.text.align = 0)