Подтвердить что ты не робот

Как увеличить размер шрифта на графике в R?

Я смущен. Каков правильный способ увеличить размер шрифта текста в заголовке, ярлыках и других местах сюжета?

Например

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?

4b9b3361

Ответ 1

Вы хотите что-то вроде аргумента cex=1.5 для масштабирования шрифтов на 150 процентов. Но посмотрите help(par), поскольку есть также cex.lab, cex.axis,...

Ответ 2

Таким образом, чтобы обобщить существующее обсуждение, добавив

cex.lab=1.5, cex.axis=1.5, cex.main=1.5, cex.sub=1.5

к вашему сюжету, где 1.5 может быть 2, 3 и т.д., а значение 1 по умолчанию увеличит размер шрифта.

x <- rnorm(100)

cex не меняет вещи

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)

enter image description here

Добавьте cex.lab = 1.5, cex.axis = 1.5, cex.main = 1.5, cex.sub = 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)

enter image description here

Ответ 3

Обратите внимание, что " cex" меняет ситуацию, когда сюжет сделан с текстом. Например, график агломеративной иерархической кластеризации:

library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which.plots=2)

создаст график с нормальным размером текста:

enter image description here

и plot(agn1, which.plots=2, cex=0.5) произведут это:

enter image description here

Ответ 4

В результате проб и ошибок я определил, что для установки размера шрифта требуется следующее:

  • 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.
  • Вы можете изменить размер шрифта по умолчанию для вывода PDF с помощью pointsize в pdf().

Я полагаю, было бы слишком логично ожидать, что R (а) фактически сделает то, что говорит его документация, (b) вести себя ожидаемым образом.

Ответ 5

Я столкнулся с этим, когда захотел сделать метки оси меньшими, но оставим все остальное одинакового размера. Команда, которая работала для меня, заключалась в том, чтобы поставить:

par(cex.axis=0.5)

Перед командой plot. Просто не забудьте поставить:

par(cex.axis=1.0)

После завершения графика, чтобы шрифты вернулись к размеру по умолчанию.

Ответ 6

Если вы хотите увеличить шрифт меток гистограммы при установке меток = 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)

Ответ 7

Для полноты, масштабирование текста на 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))