Wenn ich die Schriftgröße eines geom_text
ändern möchte, kann ich den size
Parameter verwenden. Aber was, wenn ich ein ggplot
Objekt habe, das von jemand anderem erzeugt wird (in einer Funktion sagen wir) und ich möchte die Schriftgröße danach ändern? (Ich könnte die Funktion neu schreiben und einen zusätzlichen Größenparameter zulassen, aber das möchte ich vermeiden).Wie ändert man die Schriftgröße von geom_text post ex
Ich spielte mit theme(text = element_text(size = 20))
, aber das änderte jeden Text, aber die geom_text
? Ich habe auch versucht, die jeweilige Schicht durch eine neue geom_text
Schicht zu ersetzen. Da jedoch in dem fremden Funktionsaufruf das Datenargument für die geom_text
geändert wurde, bekomme ich einen Fehler wegen fehlender Ästhetik.
-Code
library(ggplot2)
functionICannotControl <- function() {
mdat <- mtcars
mdat$cyl2 <- LETTERS[mdat$cyl]
ggplot(mtcars, aes(x = hp, y = mpg)) + geom_text(aes(label = cyl2), data = mdat)
}
(bp <- functionICannotControl())
## changed only other text elements
bp + theme(text = element_text(size = 20))
## gives an error
bp2 <- bp
bp2$layers[[1]] <- geom_text(size = 20)
bp2
## Error: geom_text requires the following missing aesthetics: label
bp2$layers[[1]] <- geom_text(aes(label = cyl2), size = 20)
bp2
## Error in eval(expr, envir, enclos) : object 'cyl2' not found