ggplot geom_text字体大小控制

我试图通过做这样的事情来改变我的酒吧在ggplot2的标签的字体为10:

 ggplot(data=file,aes(x=V1,y=V3,fill=V2)) + geom_bar(stat="identity",position="dodge",colour="white") + geom_text(aes(label=V2),position=position_dodge(width=0.9), hjust=1.5,colour="white") + theme_bw()+theme(element_text(size=10)) ggsave(filename="barplot.pdf",width=4,height=4) 

但是由此产生的图像的条形图标签具有超大的字体大小。

然后我想用geom_text()修改:

 geom_text(size=10,aes(label=V2),position=position_dodge(width=0.9), hjust=1.5,colour="white") 

标签字体甚至更大…

我可以将geom_text的大小更改为3,现在看起来像字体10,类似于轴标签。

我想知道发生了什么事? theme(text=element_text(size=10))是否不适用于标签?

为什么geom_text()的10的大小与theme(text=element_text())

以下是更改文字/标签尺寸的几个选项

 library(ggplot2) # Example data using mtcars a <- aggregate(mpg ~ vs + am , mtcars, function(i) round(mean(i))) p <- ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + geom_bar(stat="identity",position="dodge") + geom_text(data = a, aes(label = mpg), position = position_dodge(width=0.9), size=20) 

geom_text的大小更改了geom_text标签的大小。

 p <- p + theme(axis.text = element_text(size = 15)) # changes axis labels p <- p + theme(axis.title = element_text(size = 25)) # change axis titles p <- p + theme(text = element_text(size = 10)) # this will change all text size # (except geom_text) 

为什么geom_text()中的10的大小与theme(text = element_text())中的大小不同?

是的,他们是不同的。 我做了一个快速手动检查,他们似乎是〜(14/5) geom_text大小的比例为theme大小。

所以统一大小的一个可怕的解决办法是按比例缩放

 geom.text.size = 7 theme.size = (14/5) * geom.text.size ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + geom_bar(stat="identity",position="dodge") + geom_text(data = a, aes(label = mpg), position = position_dodge(width=0.9), size=geom.text.size) + theme(axis.text = element_text(size = theme.size, colour="black")) 

这当然不能解释为什么? 而且是一个皮塔(我认为有一个更明智的方式来做到这一点)

@olala,正确的语法是这样的:

 theme(axis.text.x = element_text(family="Times", face="italic", colour="darkred", size=rel(0.9))) 

element_text必须被引用到axis.text.x或者任何你的对象。 大小不是绝对的。 这是相对于默认的。 即size=rel(0.9)