2010-11-22 220 views
102

我很困惑。增加剧情的标题,标签和其他地方的文字字体大小的正确方法是什么?如何在R图中增加字体大小?

例如

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

+0

[如何更改R图的标签大小]的可能重复(https://stackoverflow.com/questions/13046323/how-to-change-the-label-size-of-an-r-plot ) – 2017-06-01 08:47:26

回答

103

你想要的东西像cex=1.5参数缩放字体150百分比,但看到help(par)因为也有cex.labcex.axis ...

+1

谢谢! “ps = 1.5”有什么区别? – Tim 2010-11-22 02:44:47

+2

为什么cex = 1.5不起作用?但是必须根据cex.lab,cex.axis,cex.main来指定每个部分? cex = 1.5是什么? – Tim 2010-11-22 02:49:54

+2

你读过关于'ps'的帮助(par)吗?据我所知,似乎与文字无关。 – 2010-11-22 02:51:30

96

因此,总结已有的讨论,增加

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

+2

顺便说一句,如果你想修改条形图中的坐标轴(比如randomForest或GBM中的变量重要性图),你需要使用'cex.names'(如果你是一个人,直立的位置,你可能也想'las = 2') – geneorama 2016-01-12 20:13:00

20

请注意,“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

+0

也可以在'faces2'中工作(来自[Chernoff faces](http://cran.r-project.org/web/packages/TeachingDemos/index.html)) – Galled 2015-01-09 01:32:24

+0

在我的示例中,我必须将_cex_ ** not **应用于绘图,但直接为效果应用内部对象:'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 2017-09-10 18:26:00

15

通过试验和错误,我确定需要设置以下字体大小:

  1. cexhist()中不起作用。对于标签,使用cex.axis作为轴上的数字,cex.lab
  2. cex也不在axis()工作。对轴上的数字使用cex.axis
  3. 代替使用hist()设置标签,您可以使用mtext()进行设置。您可以使用cex来设置字体大小,但使用值1 实际上会将字体设置为默认值的1.5倍!您需要使用cex=2/3才能获取默认的字体大小。至少,使用PDF输出的情况在Mac OS X的R 3.0.2下是这种情况。
  4. 您可以在pdf()中使用pointsize更改PDF输出的默认字体大小。

我想如果期望R(a)实际上做它的文档应该做的事情,(b)以预期的方式行事,那就太合乎逻辑了。

1

如果您想设置标签时增加直方图的标签的字体= 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) 
1

我碰到这个时候我想使轴标签较小,但离开一切同尺寸。为我工作的命令是:

par(cex.axis=0.5) 

在plot命令之前。请记住:

par(cex.axis=1.0) 

确定字体回到默认大小后的情节。