r - ggplot2:格式化图例类别

标签 r ggplot2 format legend-properties

我希望能够做这样的事情:https://stackoverflow.com/a/30036603 ,除了使用“legend.text”而不是“axis.text.x”。这可能吗?

它会是这样的,只不过它当前不起作用(所有实验室都是斜体):

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)

enter image description here

关于r - ggplot2:格式化图例类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641870/

相关文章:

R:绘图中的百分比堆栈条形图

r - 识别值在另一个特定值之后出现的情况

r - 产生不同大小的曲线以连接ggplot2中的点

r - r中直方图中的垂直线

r - 更改 ggplot 上 ablines 的颜色

python - 如何在 python 中左对齐 UTF-8 编码的字符串?

r - 合并 ggplots 但固定地 block 的大小/比例

r - 如何将颜色更改为 fviz_silhouette 中簇号以外的变量

c# - 正则表达式格式无法按预期工作

python - 初学者 Python : Format Output