Wie reduzieren Sie die Größe der Legende in R Plot, während immer noch so dass es lesbar ist?
Ich versuche zu zeichnen einige Daten über Jahre mit zwei y-Achsen in R. Allerdings, wenn ich versuchen, eine Legende, die Legende dominiert meiner Handlung. Wenn ich Lösungen vorgeschlagen, wie anderswo keyword
und/oder mit der cex
argument, schlug in einem anderen post hier, ist es entweder nicht lesbar oder immer noch zu groß.
Hier ist mein Beispiel mit zufällig generierten Daten:
#Create years
year.df <- seq(1974, 2014, 1)
# Create y-axis data
set.seed(75)
mean1 <- rnorm(length(year.df), 52.49, 0.87)
mean2 <- rnorm(length(year.df), 52.47, 0.96)
#Create dataframe
df <- data.frame(cbind(year.df, mean1, mean2))
Möchte ich eine zweite y-Achse die Differenz der beiden Mittel über die Jahre
df$diff <- abs(df$mean1 - df$mean2)
Wenn ich das Grundstück mit dem folgenden code erstellen Sie zwei y-Achsen:
par(mfrow=c(1,1), mar=c(5.1,4.1,4.1,5.1))
with(df, plot(year.df, mean1, type = "l", lwd=4, xlab="Year", ylab="Mean", ylim=c(48,58)))
with(df, lines(year.df, mean2, type = "l", col="green", lwd=4))
par(new=TRUE)
with(df, plot(year.df, diff, type="l", axes=FALSE, xlab=NA, ylab=NA, col="red", lty=5, ylim=c(0,10)))
axis(side = 4)
mtext(side = 4, line = 3, "Annual Difference")
legend("topleft",
legend=c("Calculated", "MST", "Diff"),
lty=c(1,1,5), col=c("black", "green", "red"))
Bekomme ich:
Wenn ich den cex=0.5
argument in der legend()
ist, beginnt es zu unlesbar:
Gibt es eine Möglichkeit zu formatieren, meine Legende in einer klaren, lesbaren Art und Weise? Besser als das, was ich habe?
- (a) wenn Sie speichern, das Grundstück, die Größe des Textes hängt von den Abmessungen der Datei, die Sie speichern. (b) Haben Sie versucht, andere
cex
Werte? Wenncex = 0.5
ist zu klein, vielleichtcex = 0.65
ist genau richtig? (c) Ihre Legende ist die Aufnahme ziemlich wenig Grundstück Platz. Könnte es besser sein, label die Zeilen direkt mittext()
und lassen Sie die y-Achsen gehen bis zu 55 und 7, damit Sie Ihre Daten nimmt mehr von der Handlung Raum. - Ich kann nicht reproduzieren Sie Ihre plots: die Legende, in meinem Grundstück befindet sich in der oberen linken Ecke mit kurzen Linien und lesbaren text. Seite beachten Sie, obwohl, die Sie verwendet haben
cex
tutpt.cex
(anstelle von oder zusätzlich zucex
) die Dinge besser machen? (Das heißt, haltencex
näher an 1, schrumpfenpt.cex
.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den weißen Raum in der Legende erzählt mir, dass Sie manuell erweitert Ihre plot-Fenster. Die Legenden nicht gut skalieren, wenn es um die manuelle re-sizing.
Die Lösung ist die Eröffnung eines plot der exakten Größe, die Sie benötigen, bevor Sie Plotten. In Windows, dies geschieht mit
windows(width=10, height=8)
. Einheiten sind in Zoll.Wie Sie unten sehen können, die Legende sitzt fest in der Ecke.
Anscheinend habe ich vergessen zu tun, der erste Schritt der Fehlerbehebung: schalten Sie die Dinge aus ein schalten Sie es ein. Ich bin heute morgen aufgewacht und lief das Skript erneut aus. Auch mit
cex = 0.5
und es stellte sich heraus fein. Ich entschied mich für die Verwendungcex = 0.75
. Ich wäre immer noch für jede Hilfe dankbar, warum das sein könnte. Viele Stunden damit verbracht, gestern versucht zu reparieren, meine Legende und der gleiche code funktioniert und erhält dieses Produkt (cex=0.75
):