ggplot geom управление размером шрифта текста
Я попытался изменить шрифт на 10 для меток моего барного графика в ggplot2 делая что-то вроде этого:
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)) не относится к меткам?
а почему размер 10 в geom_text() - это theme(text=element_text()) ?
1 ответ:
вот несколько вариантов изменения размеров текста / меток
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)The
sizeна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)
для этого и почему размер 10 в geom_text () отличается от того, что в теме (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"))это конечно не объясняет почему? и лаваш (и я предполагаю, что есть более разумный способ сделать это)
Comments