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()) ?

610   1  

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

    Ничего не найдено.