Làm cách nào để tăng kích thước phông chữ trong một ô trong R?


146

Tôi bị bối rối. Cách đúng để tăng kích thước phông chữ của văn bản trong tiêu đề, nhãn và các vị trí khác của một cốt truyện là gì?

Ví dụ

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

Đối pssố không thay đổi kích thước phông chữ (nhưng nó nói trong R Help cho ?parrằng nó dành cho "kích thước điểm của văn bản (nhưng không phải là ký hiệu)".

Ngoài ra có thể tách biệt việc thay đổi kích thước phông chữ từ chức năng vẽ như histkhông?


Câu trả lời:


140

Bạn muốn một cái gì đó giống như cex=1.5đối số để mở rộng phông chữ 150 phần trăm. Nhưng đừng thấy help(par)như cũng có cex.lab, cex.axis...


1
Cảm ơn! Sự khác biệt với "ps = 1,5" là gì?
Tim

5
tại sao cex = 1.5 không hoạt động? Nhưng phải chỉ định cho từng phần theo cex.lab, cex.axis, cex.main? Cex = 1,5 để làm gì?
Tim

2
Bạn đã đọc help(par)về ps? Có vẻ như không liên quan đến văn bản như tôi có thể nói.
Dirk Eddelbuettel

2
Đó là cách nó, một phần chắc chắn cho khả năng tương thích ngược với việc triển khai trước đó của ngôn ngữ S.
Dirk Eddelbuettel

3
cex là hệ số phóng đại. Giá trị mặc định là 1. Nếu bạn cần chỉ định kích thước phông chữ, tốt nhất bạn nên chuẩn bị để tìm hiểu tài liệu bắt đầu bằng? Thiết bị ,? PdfFonts ,? Pdf ,? EmbedFonts, và nhiều thứ khác.
IRTFM

124

Vì vậy, để tóm tắt các cuộc thảo luận hiện có, thêm

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

đối với cốt truyện của bạn, trong đó 1,5 có thể là 2, 3, v.v. và giá trị 1 là mặc định sẽ tăng kích thước phông chữ.

x <- rnorm(100)

cex không thay đổi mọi thứ

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)

nhập mô tả hình ảnh ở đây

Thêm 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)

nhập mô tả hình ảnh ở đây


2
BTW, nếu bạn đang cố gắng sửa đổi trục trong biểu đồ thanh (giả sử biểu đồ có tầm quan trọng thay đổi trong RandomForest hoặc GBM), bạn cần sử dụng cex.names(nếu bạn là người đọc mọi thứ từ vị trí thẳng đứng, bạn cũng có thể muốn las=2)
genorama

22

Lưu ý rằng " cex " sẽ thay đổi mọi thứ khi cốt truyện được tạo bằng văn bản. Ví dụ, âm mưu của một cụm phân cấp kết tụ:

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

sẽ tạo ra một cốt truyện với văn bản có kích thước bình thường:

nhập mô tả hình ảnh ở đây

plot(agn1, which.plots=2, cex=0.5)sẽ sản xuất cái này:

nhập mô tả hình ảnh ở đây


Làm việc faces2quá (từ khuôn mặt của Chernoff )
Giành

Trong ví dụ của tôi, tôi đã phải áp dụng cex không vào cốt truyện mà là đối tượng bên trong trực tiếp để tạo hiệu ứng: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

Bằng cách dùng thử và lỗi, tôi đã xác định những điều sau đây là bắt buộc để đặt kích thước phông chữ:

  1. cexkhông hoạt động trong hist(). Sử dụng cex.axischo các số trên các trục, cex.labcho các nhãn.
  2. cexkhông làm việc trong axis()một trong hai. Sử dụng cex.axischo các số trên các trục.
  3. Thay vì cài đặt nhãn bằng cách sử dụng hist(), bạn có thể đặt chúng bằng cách sử dụng mtext(). Bạn có thể đặt kích thước phông chữ bằng cách sử dụng cex, nhưng sử dụng giá trị 1 thực sự đặt phông chữ thành 1,5 lần mặc định !!! Bạn cần sử dụng cex=2/3để có được kích thước phông chữ mặc định. Ít nhất, đây là trường hợp theo R 3.0.2 cho Mac OS X, sử dụng đầu ra PDF.
  4. Bạn có thể thay đổi kích thước phông chữ mặc định cho đầu ra PDF sử dụng pointsizetrong pdf().

Tôi cho rằng sẽ quá logic khi mong đợi R (a) thực sự làm những gì tài liệu của nó nói rằng nó nên làm, (b) hành xử theo kiểu mong đợi.


2

Tôi đã bắt gặp điều này khi tôi muốn làm cho các nhãn trục nhỏ hơn, nhưng để mọi thứ khác có cùng kích thước. Lệnh làm việc cho tôi, là đặt:

par(cex.axis=0.5)

Trước lệnh cốt truyện. Chỉ cần nhớ để đặt:

par(cex.axis=1.0)

Sau cốt truyện để đảm bảo rằng các phông chữ trở về kích thước mặc định.


2

Để hoàn thiện, chia tỷ lệ văn bản lên 150% với cex = 1.5, đây là một giải pháp đầy đủ:

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

Tôi khuyên bạn nên gói những thứ như thế này để giảm nồi hơi, ví dụ:

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

mà sau đó bạn có thể sử dụng như thế này:

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

Chúng ...được gọi là các hình elip trong R và được sử dụng để truyền các tham số bổ sung cho các hàm. Do đó, chúng thường được sử dụng cho âm mưu. Vì vậy, các công việc sau đây như mong đợi:

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

1

Trong trường hợp bạn muốn tăng phông chữ của biểu đồ khi đặt nhãn = 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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.