R 具有可变字体系列的geom_文字图例

R 具有可变字体系列的geom_文字图例,r,ggplot2,R,Ggplot2,我想让geom_text()标签根据变量采用字体系列。 根据(向下滚动至底部)上的示例,我已经完成了这项工作(与ggplot文档示例相同): 库(ggplot2) p这并不漂亮:您可以在grob级别更改图例标签的字体系列(我不知道其他方法,但我希望有) 首先将color添加到美学中,以便自动生成图例,然后手动设置颜色,使用scale\u color\u manual将颜色保持不变。然后调整图例细节,以更改键中的标签和字体 library(ggplot2) library(grid) p &

我想让
geom_text()
标签根据变量采用字体系列。 根据(向下滚动至底部)上的示例,我已经完成了这项工作(与ggplot文档示例相同):

库(ggplot2)

p这并不漂亮:您可以在
grob
级别更改图例标签的字体系列(我不知道其他方法,但我希望有)

首先将
color
添加到美学中,以便自动生成图例,然后手动设置颜色,使用
scale\u color\u manual
将颜色保持不变。然后调整图例细节,以更改键中的标签和字体

library(ggplot2)
library(grid)



p <- ggplot(mtcars, aes(x=wt, y=mpg, colour=factor(am), label=rownames(mtcars))) + 
         geom_text(aes(family=c("serif", "mono")[am+1])) + 
         scale_colour_manual(values=c('0'= "#000000FF", '1'="#000000FF"),
                             name="am") +
         theme(legend.text=element_text(size=16),
               legend.key.width=unit(2, "cm"))

g <- ggplotGrob(p)

# change labels and fonts
g$grobs[[8]]$grobs[[1]]$grobs[[4]]$label <- "mono"
g$grobs[[8]]$grobs[[1]]$grobs[[4]]$gp$fontfamily <- "mono"
g$grobs[[8]]$grobs[[1]]$grobs[[6]]$label <- "serif"
g$grobs[[8]]$grobs[[1]]$grobs[[6]]$gp$fontfamily <- "serif"

grid.newpage()
grid.draw(g)
库(ggplot2)
图书馆(网格)
p呃,这很奇怪,几天前有人已经回答了这个问题,我正要接受并实施它,但现在答案不见了。。。怎么回事?
library(ggplot2)
library(grid)



p <- ggplot(mtcars, aes(x=wt, y=mpg, colour=factor(am), label=rownames(mtcars))) + 
         geom_text(aes(family=c("serif", "mono")[am+1])) + 
         scale_colour_manual(values=c('0'= "#000000FF", '1'="#000000FF"),
                             name="am") +
         theme(legend.text=element_text(size=16),
               legend.key.width=unit(2, "cm"))

g <- ggplotGrob(p)

# change labels and fonts
g$grobs[[8]]$grobs[[1]]$grobs[[4]]$label <- "mono"
g$grobs[[8]]$grobs[[1]]$grobs[[4]]$gp$fontfamily <- "mono"
g$grobs[[8]]$grobs[[1]]$grobs[[6]]$label <- "serif"
g$grobs[[8]]$grobs[[1]]$grobs[[6]]$gp$fontfamily <- "serif"

grid.newpage()
grid.draw(g)