Ответ 1
Вы хотите что-то вроде аргумента cex=1.5
для масштабирования шрифтов на 150 процентов. Но посмотрите help(par)
, поскольку есть также cex.lab
, cex.axis
,...
Я смущен. Каков правильный способ увеличить размер шрифта текста в заголовке, ярлыках и других местах сюжета?
Например
x <- rnorm(100)
hist(x, xlim=range(x), xlab= "Variable Label",
ylab="density", main="Title of plot", prob=TRUE, ps=30)
Аргумент ps
не изменяет размер шрифта (но он говорит в R Help для ?par
, что он предназначен для "размерности текста (но не символов)".
Также можно отделить изменение размера шрифта от функции построения графика, например hist
?
Вы хотите что-то вроде аргумента cex=1.5
для масштабирования шрифтов на 150 процентов. Но посмотрите help(par)
, поскольку есть также cex.lab
, cex.axis
,...
Таким образом, чтобы обобщить существующее обсуждение, добавив
cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5
к вашему сюжету, где 1.5 может быть 2, 3 и т.д., а значение 1 по умолчанию увеличит размер шрифта.
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)
Обратите внимание, что " cex" меняет ситуацию, когда сюжет сделан с текстом. Например, график агломеративной иерархической кластеризации:
library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which.plots=2)
создаст график с нормальным размером текста:
и plot(agn1, which.plots=2, cex=0.5)
произведут это:
В результате проб и ошибок я определил, что для установки размера шрифта требуется следующее:
cex
не работает в hist()
. Используйте cex.axis
для чисел на осях, cex.lab
для меток.cex
не работает в axis()
. Используйте cex.axis
для чисел на осях.hist()
вы можете установить их с помощью mtext()
. Вы можете установить размер шрифта с помощью cex
, но с использованием значения 1 фактически устанавливает шрифт в 1,5 раза по умолчанию!!! Для получения размера шрифта по умолчанию вам нужно использовать cex=2/3
. По крайней мере, это относится к R 3.0.2 для Mac OS X, используя выход PDF.pointsize
в pdf()
.Я полагаю, было бы слишком логично ожидать, что R (а) фактически сделает то, что говорит его документация, (b) вести себя ожидаемым образом.
Я столкнулся с этим, когда захотел сделать метки оси меньшими, но оставим все остальное одинакового размера. Команда, которая работала для меня, заключалась в том, чтобы поставить:
par(cex.axis=0.5)
Перед командой plot. Просто не забудьте поставить:
par(cex.axis=1.0)
После завершения графика, чтобы шрифты вернулись к размеру по умолчанию.
Если вы хотите увеличить шрифт меток гистограммы при установке меток = TRUE
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)
Для полноты, масштабирование текста на 150% с cex = 1.5
, вот полное решение:
cex <- 1.5
par(cex.lab=cex, cex.axis=cex, cex.main=cex)
plot(...)
par(cex.lab=1, cex.axis=1, cex.main=1)
Я рекомендую обернуть вещи, как это, чтобы уменьшить шаблон, например:
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)
}
который вы можете использовать следующим образом:
plot_cex(x=1:5, y=rnorm(5), cex=1.3)
...
известны как эллипсы в R и используются для передачи дополнительных параметров в функции. Следовательно, они обычно используются для построения. Итак, следующие работы, как и ожидалось:
plot_cex(x=1:5, y=rnorm(5), cex=1.5, ylim=c(-0.5,0.5))