จะเพิ่มขนาดตัวอักษรในเนื้อเรื่องใน R ได้อย่างไร?


147

ฉันสับสน. วิธีที่ถูกต้องในการเพิ่มขนาดตัวอักษรของข้อความในชื่อป้ายกำกับและสถานที่อื่น ๆ ของพล็อตคืออะไร?

ตัวอย่างเช่น

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?


ข้อมูลซ้ำที่เป็นไปได้ของวิธีการเปลี่ยนขนาดฉลากของพล็อต R
Waldir Leoncio

คำตอบ:


140

คุณต้องการบางสิ่งเช่นcex=1.5อาร์กิวเมนต์เพื่อปรับขนาดแบบอักษร 150 เปอร์เซ็นต์ แต่จะดูhelp(par)เป็นยังมีcex.lab, cex.axis...


1
ขอบคุณ! อะไรคือความแตกต่างของ "ps = 1.5"
ทิม

5
ทำไม cex = 1.5 ไม่ทำงาน แต่ต้องระบุสำหรับแต่ละส่วนในแง่ของ cex.lab, cex.axis, cex.main? cex = 1.5 คืออะไร
ทิม

2
คุณอ่านhelp(par)เกี่ยวกับps? ดูเหมือนจะไม่เกี่ยวข้องกับข้อความเท่าที่ฉันสามารถบอกได้
Dirk Eddelbuettel

2
นั่นเป็นวิธีที่มันเป็นส่วนหนึ่งอย่างแน่นอนสำหรับความเข้ากันได้ย้อนหลังกับการใช้งานก่อนหน้าของภาษา S
Dirk Eddelbuettel

3
cex เป็นปัจจัยการขยาย ค่าเริ่มต้นคือ 1 หากคุณต้องการระบุขนาดตัวอักษรคุณควรเตรียมพร้อมที่จะขุดลงในเอกสารที่ขึ้นต้นด้วย "อุปกรณ์," pdfFonts, "pdf," embedFonts และอื่น ๆ อีกมากมาย
IRTFM

124

ดังนั้นเพื่อสรุปการสนทนาที่มีอยู่เพิ่ม

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)

ป้อนคำอธิบายรูปภาพที่นี่

เพิ่ม 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)

ป้อนคำอธิบายรูปภาพที่นี่


2
BTW หากคุณกำลังพยายามปรับเปลี่ยนแกนในแผนภูมิแท่ง (พูดสำหรับพล็อตเรื่องความสำคัญของตัวแปรใน randomForest หรือ GBM) คุณต้องใช้cex.names(ถ้าคุณเป็นคนที่อ่านสิ่งต่าง ๆ จากตำแหน่งตั้งตรงคุณอาจ ต้องการlas=2)
geneorama

22

ขอให้สังเกตว่า " cex " จะเปลี่ยนแปลงสิ่งต่าง ๆ เมื่อพล็อตถูกสร้างขึ้นด้วยข้อความ ตัวอย่างเช่นพล็อตของการจัดกลุ่มแบบลำดับชั้น agglomerative:

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

จะสร้างพล็อตที่มีข้อความขนาดปกติ:

ป้อนคำอธิบายรูปภาพที่นี่

และplot(agn1, which.plots=2, cex=0.5)จะผลิตสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่


ทำงานfaces2ด้วย (จากใบหน้าของ Chernoff )
Galled

ในตัวอย่างของฉันฉันต้องใช้cex ไม่ต้องพล็อต แต่วัตถุภายในเพื่อผลโดยตรง: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

จากการทดลองและข้อผิดพลาดฉันได้พิจารณาแล้วว่าสิ่งต่อไปนี้จำเป็นสำหรับการตั้งค่าขนาดตัวอักษร:

  1. cexhist()ไม่ทำงานใน ใช้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 ใช้ในpointsizepdf()

ฉันคิดว่ามันคงสมเหตุสมผลเกินกว่าที่จะคาดหวังว่า R to (a) ทำสิ่งที่เอกสารของเขาบอกว่าควรทำ (b) ประพฤติตนตามที่คาดหวังไว้


2

ฉันเจอสิ่งนี้เมื่อฉันต้องการทำให้แกนป้ายเล็กลง แต่ทำให้ทุกอย่างมีขนาดเท่ากัน คำสั่งที่ใช้งานได้สำหรับฉันคือการใส่:

par(cex.axis=0.5)

ก่อนคำสั่งพล็อต อย่าลืมใส่:

par(cex.axis=1.0)

หลังจากพล็อตเพื่อให้แน่ใจว่าแบบอักษรกลับไปที่ขนาดเริ่มต้น


2

เพื่อความสมบูรณ์ปรับขนาดข้อความ 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))

1

ในกรณีที่คุณต้องการเพิ่มฟอนต์ของเลเบลของฮิสโตแกรมเมื่อตั้งค่า labels = 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)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.