Ich bin verwirrt. Was ist der richtige Weg, um die Schriftgröße des Texts im Titel, in den Beschriftungen und an anderen Stellen eines Diagramms zu erhöhen?
Zum Beispiel
x <- rnorm(100)
hist(x, xlim=range(x), xlab= "Variable Label",
ylab="density", main="Title of plot", prob=TRUE, ps=30)
Das Argument ps
ändert die Schriftgröße nicht (in der R-Hilfe für ?par
wird jedoch angegeben, dass es sich um "Punktgröße für Text (aber keine Symbole)" handelt).
Ist es auch möglich, die Schriftgröße von der Plot-Funktion zu ändern, z. B. hist
?
Etwas wie das cex=1.5
-Argument soll Schriftarten um 150 Prozent skalieren. Sehen Sie aber help(par)
, da es auch cex.lab
, cex.axis
, ... gibt.
Um also die bestehende Diskussion zusammenzufassen, fügen Sie hinzu
cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5
auf Ihrem Plot, wo 1,5 2, 3 usw. sein könnte und der Wert 1 der Standardwert ist, wird die Schriftgröße erhöht.
x <- rnorm(100)
hist(x, xlim=range(x),
xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE)
hist(x, xlim=range(x),
xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE,
cex=1.5)
hist(x, xlim=range(x),
xlab= "Variable Lable", ylab="density", main="Title of plot", prob=TRUE,
cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5)
Beachten Sie, dass sich "cex" ändert, wenn der Plot aus Text besteht. Zum Beispiel die grafische Darstellung eines agglomerativen hierarchischen Clusters:
library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which.plots=2)
erzeugt ein Diagramm mit normalem Text:
und plot(agn1, which.plots=2, cex=0.5)
wird dieses produzieren:
Durch Ausprobieren habe ich Folgendes festgelegt, um die Schriftgröße festzulegen:
cex
funktioniert nicht in hist()
. Verwenden Sie cex.axis
für die Zahlen auf den Achsen, cex.lab
für die Etiketten.cex
funktioniert auch nicht in axis()
. Verwenden Sie cex.axis
für die Zahlen auf den Achsen.hist()
zu setzen, können Sie sie mit mtext()
einstellen. Sie können die Schriftgröße mit cex
einstellen, aber mit einem Wert von 1 wird die Schriftart tatsächlich auf das 1,5-fache des Standardwerts gesetzt !!! Sie müssen cex=2/3
verwenden, um die Standardschriftgröße zu erhalten. Zumindest ist dies unter R 3.0.2 für Mac OS X der Fall, wenn die Ausgabe von PDF verwendet wird.pointsize
in pdf()
ändern.Ich nehme an, es wäre viel zu logisch zu erwarten, dass R (a) tatsächlich das tut, was in seiner Dokumentation angegeben ist, (b) sich erwartungsgemäß verhält.
Ich bin darauf gestoßen, als ich die Achsenbeschriftungen kleiner machen wollte, aber alles andere gleich belassen sollte. Der Befehl, der für mich funktionierte, lautete:
par(cex.axis=0.5)
Vor dem Plotbefehl. Denken Sie daran:
par(cex.axis=1.0)
Stellen Sie nach der Darstellung sicher, dass die Schriftarten auf die Standardgröße zurückgesetzt werden.
Der Vollständigkeit halber wird der Text mit cex = 1.5
um 150% skaliert. Hier ist eine vollständige Lösung:
cex <- 1.5
par(cex.lab=cex, cex.axis=cex, cex.main=cex)
plot(...)
par(cex.lab=1, cex.axis=1, cex.main=1)
Ich empfehle, solche Dinge einzuwickeln, um die Heizplatte zu reduzieren, z. B .:
plot_cex <- function(x, y, cex=1.5, ...) {
par(cex.lab=cex, cex.axis=cex, cex.main=cex)
plot(x, y, ...)
par(cex.lab=1, cex.axis=1, cex.main=1)
invisible(0)
}
die kannst du dann so benutzen:
plot_cex(x=1:5, y=rnorm(5), cex=1.3)
Die ...
werden in R als Ellipsen bezeichnet und dienen dazu, zusätzliche Parameter an Funktionen zu übergeben. Daher werden sie üblicherweise zum Plotten verwendet. So funktioniert folgendes wie erwartet:
plot_cex(x=1:5, y=rnorm(5), cex=1.5, ylim=c(-0.5,0.5))
Wenn Sie die Schrift der Beschriftungen des Histogramms erhöhen möchten, wenn Sie Beschriftungen auf TRUE setzen
bp=hist(values, labels = FALSE,
main='Histogram',
xlab='xlab',ylab='ylab', cex.main=2, cex.lab=2,cex.axis=2)
text(x=bp$mids, y=bp$counts, labels=bp$counts ,cex=2,pos=3)