Ik heb geprobeerd het lettertype te wijzigen in 10 voor de labels van mijn staafdiagram in ggplot2
door zoiets als dit te doen:
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)
maar de resulterende afbeelding heeft een supergrote lettergrootte voor de staafdiagramlabels.
Toen dacht ik eraan om in geom_text()
dit aan te passen:
geom_text(size=10,aes(label=V2),position=position_dodge(width=0.9),
hjust=1.5,colour="white")
Het lettertype van het label is nog groter…
Ik kan de grootte binnen geom_text
veranderen in iets als 3 en nu ziet het eruit als lettertype 10, vergelijkbaar met de aslabels.
Ik vraag me af wat er aan de hand is? Is theme(text=element_text(size=10))
niet van toepassing op labels?
En waarom is de grootte van 10 in geom_text()
anders dan die in theme(text=element_text())
?
Antwoord 1, autoriteit 100%
Hier zijn een paar opties voor het wijzigen van tekst-/labelformaten
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)
De size
in de geom_text
Wijzigt de grootte van de geom_text
Labels.
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)
Voor deze en waarom maat van 10 in Geom_Text () verschilt van dat in thema (tekst = element_text ())?
Ja, ze zijn anders. Ik heb een snelle handmatige controle gedaan en ze lijken in de verhouding van ~ (14/5) te staan voor geom_text
Maten naar theme
Maten.
Dus een vreselijke oplossing voor uniforme maten is op schaal door deze verhouding
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"))
Dit verklaart natuurlijk niet waarom? en is een pita (en ik neem aan dat er een verstandige manier is om dit te doen)