R'deki bir grafikte yazı tipi boyutu nasıl artırılır?


147

Kafam karıştı. Bir başlığın, etiketlerin ve bir arsanın diğer yerlerindeki metnin yazı tipi boyutunu artırmanın doğru yolu nedir?

Örneğin

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

psArgüman yazı tipi boyutunu değiştirmez (ancak R Yardım diyor ?par"text (ama semboller) noktası boyutu" için olduğunu.

Ayrıca, yazı tipi boyutunu değiştirme gibi çizim işlevinden ayırmak mümkün histmü?


Yanıtlar:


140

cex=1.5Yazı tiplerini yüzde 150 ölçeklendirmek için argüman gibi bir şey istiyorsunuz . Ama görüyorsunuz help(par)da olduğu gibi cex.lab, cex.axis...


1
Teşekkürler! "Ps = 1.5" ile fark nedir?
Tim

5
neden cex = 1.5 çalışmıyor? Ancak her bölüm için cex.lab, cex.axis, cex.main cinsinden belirtmeniz gerekir mi? Cex = 1.5 ne için?
Tim

2
help(par)Hakkında okudun psmu Anlayabildiğim kadarıyla metinle ilgili görünmüyor.
Dirk Eddelbuettel

2
Bu, kısmen S dilinin önceki uygulamalarıyla geriye dönük uyumluluk için böyledir.
Dirk Eddelbuettel

3
cex büyütme faktörüdür. Varsayılan değer 1'dir. Yazı tipi boyutlarını belirtmeniz gerekiyorsa,? Devices,? PdfFonts,? Pdf,? EmbedFonts ve diğer pek çok belgeyle başlamaya hazır olsanız iyi olur.
IRTFM

124

Böylece, mevcut tartışmayı özetlemek gerekirse,

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

1,5, 2, 3, vb. olabilir ve varsayılan değer 1 ise yazı tipi boyutunu artıracaktır.

x <- rnorm(100)

cex bir şeyleri değiştirmez

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)

resim açıklamasını buraya girin

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

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)

resim açıklamasını buraya girin


2
BTW, bir çubuk grafikteki ekseni değiştirmeye çalışıyorsanız (randomForest veya GBM'deki değişken önem grafiğini söyleyin), kullanmanız gerekir cex.names(bir şeyi dik konumda okuyan bir insansanız , istiyorum las=2)
geneorama

22

Grafikle metin oluşturulduğunda " cex " ifadesinin bazı şeyleri değiştirdiğine dikkat edin . Örneğin, aglomeratif hiyerarşik bir kümelenmenin grafiği:

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

normal boyutlu metin içeren bir çizim oluşturur:

resim açıklamasını buraya girin

ve plot(agn1, which.plots=2, cex=0.5)bunu üretecek:

resim açıklamasını buraya girin


Çalışma faces2çok (dan Chernoff yüzler )
galled

Benim örnekte ben uygulamak zorunda cex değil arsa ancak etki için doğrudan iç nesneye:plot(ci(roc(data$a, data$b, auc=TRUE, of="auc", print.auc=TRUE, print.auc.cex=1.5, plot=TRUE), of="thresholds", thresholds="best")))
Tapper

21

Deneme yanılma yoluyla, yazı tipi boyutunu ayarlamak için aşağıdakilerin gerekli olduğunu belirledim:

  1. cexçalışmıyor hist(). Etiketlerdeki cex.axiseksenlerdeki sayılar için kullanın cex.lab.
  2. cexaxis()ikisinde de çalışmaz . cex.axisEksenlerdeki sayılar için kullanın .
  3. Etiketleri kullanarak ayarlamak yerine, hist()bunları kullanarak ayarlayabilirsiniz mtext(). Yazı tipi boyutunu kullanarak ayarlayabilirsiniz cex, ancak 1 değerini kullanmak aslında yazı tipini varsayılanın 1,5 katına ayarlar !!! cex=2/3Varsayılan yazı tipi boyutunu elde etmek için kullanmanız gerekir . En azından, PDF çıktısı kullanan Mac OS X için R 3.0.2 altındaki durum budur.
  4. Sen kullanarak PDF çıkışı için varsayılan yazı tipi boyutunu değiştirebilir pointsizeiçinde pdf().

Sanırım R'nin (a) belgelerinin yapması gerekeni söylediklerini yapmasını beklemek çok mantıklı olurdu, (b) beklenen şekilde davranmak.


2

Eksen etiketlerini küçültmek istediğimde bununla karşılaştım, ancak diğer her şeyi aynı boyutta bırakın. Benim için çalışan komut:

par(cex.axis=0.5)

Plot komutundan önce. Sadece koymayı unutmayın:

par(cex.axis=1.0)

Çizimden sonra yazı tiplerinin varsayılan boyuta geri döndüğünden emin olun.


2

Tamlık için, metni% 150 ölçeklendirmek cex = 1.5için tam bir çözüm:

cex <- 1.5
par(cex.lab=cex, cex.axis=cex, cex.main=cex)
plot(...)
par(cex.lab=1, cex.axis=1, cex.main=1)

Kazan plakasını azaltmak için böyle şeyleri sarmanızı tavsiye ederim, örneğin:

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)
}

daha sonra şu şekilde kullanabilirsiniz:

plot_cex(x=1:5, y=rnorm(5), cex=1.3)

Bunlar ..., R'de elips olarak bilinir ve işlevlere ek parametreler iletmek için kullanılır. Bu nedenle, bunlar genellikle çizim için kullanılır. Yani, aşağıdaki beklendiği gibi çalışır:

plot_cex(x=1:5, y=rnorm(5), cex=1.5, ylim=c(-0.5,0.5))

1

Etiketleri ayarlarken histogramdaki etiketlerin yazı tipini artırmak istiyorsanız = 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)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.