我尝试通过执行以下操作将 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
中的 size
更改 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()) 中的大小不同?
是的,它们是不同的。我做了一个快速的手动检查,它们似乎在 geom_text
尺寸与 theme
尺寸的比例为 ~ (14/5)。
所以统一尺寸的一个可怕的解决方法是按这个比例缩放
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"))
这当然不能解释为什么?并且是皮塔饼(我认为有一种更明智的方法来做到这一点)
geom_text
转换为“常规”字体大小的人,您只需乘以 0.36。