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)