Как увеличить размер шрифта на графике в R? - PullRequest
128 голосов
/ 22 ноября 2010

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

Например,

x <- rnorm(100)
hist(x, xlim=range(x), xlab= "Variable Label", 
     ylab="density", main="Title of plot", prob=TRUE, ps=30)

Аргумент ps не меняет размер шрифта (но в справке R для ?par говорится, что он для "размера точки текста (не символы) ".

Также возможно отделить изменение размера шрифта от функции печати, такой как hist?

Ответы [ 7 ]

128 голосов
/ 22 ноября 2010

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

114 голосов
/ 06 июня 2012

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

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

21 голосов
/ 17 июня 2012

Обратите внимание, что " 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

20 голосов
/ 12 декабря 2013

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

  1. cex не работает в hist().Используйте cex.axis для чисел на осях, cex.lab для меток.
  2. cex также не работает в axis().Используйте cex.axis для чисел на осях.
  3. Вместо установки меток с помощью hist(), вы можете установить их с помощью mtext().Вы можете установить размер шрифта, используя cex, но используя значение 1 , на самом деле шрифт в 1,5 раза больше шрифта по умолчанию !!! Вам нужно использовать cex=2/3, чтобы получить размер шрифта по умолчанию.По крайней мере, это относится к R 3.0.2 для Mac OS X с использованием вывода PDF.
  4. Вы можете изменить размер шрифта по умолчанию для вывода PDF, используя pointsize в pdf().

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

2 голосов
/ 17 октября 2017

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

par(cex.axis=0.5)

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

par(cex.axis=1.0)

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

1 голос
/ 05 февраля 2019

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

Я рекомендую обернуть вещи, как это, чтобы уменьшить шаблон, например ::10000

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))
1 голос
/ 06 ноября 2015

Если вы хотите увеличить шрифт меток гистограммы при установке меток = ИСТИНА

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...