Problem: Ich kann keine Möglichkeit finden, die Befehle breaks und limits in ggplot2
zu kombinieren. Die Y-Achse sollte immer den Bereich von 0 bis 40 und breaks=c(5,10,15,20,25,30,35)
enthalten. Die X-Achse sollte 0-100, breaks=c(10,20,30,40,50,60,70,80,90,100)
sein. Ich möchte keine Daten anzeigen, die außerhalb dieses Bereichs liegen.R ggplot2 scale_y_continuous: Kombinieren von Brüchen und Grenzen
Ich versuchte + ylim
, aber das überschreibt meine Pausen. Ich versuchte + expand
, aber das zeigt auch Daten außerhalb des Bereichs, den ich will (1-100). Ich habe versucht, sowohl die Pausen hinzuzufügen als auch den Bereich in einem zweiten Schritt zu begrenzen, aber die Y-Achse meines ersten Schritts wird einfach überschrieben, wenn ich das tue.
plot_Tili_Age_VS_Height <- ggplot(Tili, aes(x = Age, y = Height)) + geom_point() +
geom_smooth(method = "lm", se = FALSE, color = "black", formula = y ~ x) +
scale_y_continuous(trans = "log10", breaks = c(5, 10, 15, 20, 25, 30, 35)) +
expand_limits(y = c(0, 35), x = c(0, 100)) +
scale_x_continuous(trans = "log10", breaks = c(10, 20, 30, 40, 50, 60,70, 80, 90, 100)) +
theme_bw(base_size = 15) +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())
df <- data.frame(x = log(Tili$Age), y = log(Tili$Height))
lm_eqn = function(df) {
m = lm(y ~ x, df)
eq <- substitute(ln(italic(y)) == a + b %*% ln(italic(x)) * "," ~ ~italic(r)^2 ~
"=" ~ r2, list(a = format(coef(m)[1], digits = 2),
b = format(coef(m)[2], digits = 2),
r2 = format(summary(m)$r.squared, digits = 2)))
as.character(as.expression(eq))
}
plot_Tili_Age_VS_Height <- plot_Tili_Age_VS_Height +
annotate("text", x = 30, y = 5, label = lm_eqn(df), hjust = 0,
size = 3, family = "Times", parse = TRUE)
plot_Tili_Age_VS_Height
Irgendeine Idee, wie man es repariert?
Ist 'Tili' ein eingebauter Datensatz? Kannst du das für andere nachvollziehbar machen? – JasonAizkalns
Haben Sie versucht, das Argument 'limits' beispielsweise in' scale_x_continuous' zu verwenden? – aosmith
Löschen Sie 'expand_limits()', benutzen Sie nicht 'ylim' oder' xlim', benutzen Sie einfach 'scale_y_continuous' und' scale_x_continuous', sie nehmen sowohl 'breaks' als auch' limits' Argumente. – Gregor