เปลี่ยนขนาดของชื่อแกนและป้ายกำกับใน ggplot2


146

ฉันมีคำถามง่าย ๆ ซึ่งฉันพยายามค้นหาคำตอบ ฉันหวังว่าบางคนที่นี่อาจช่วยฉันได้

ตัวอย่าง dataframe นำเสนอด้านล่าง:

a <- c(1:10)
b <- c(10:1)
df <- data.frame(a,b)
library(ggplot2)
g = ggplot(data=df) + geom_point(aes(x=a, y=b)) +
  xlab("x axis")
g

ฉันแค่ต้องการเรียนรู้วิธีเปลี่ยนขนาดตัวอักษรของชื่อแกนและป้ายชื่อแกน

คำตอบ:


313

คุณสามารถเปลี่ยนข้อความและป้ายขนาดแกนมีข้อโต้แย้งaxis.text=และฟังก์ชั่นaxis.title= theme()หากคุณต้องการตัวอย่างเช่นการเปลี่ยนแปลงเพียง x axis.title.x=ขนาดชื่อแกนแล้วใช้

g+theme(axis.text=element_text(size=12),
        axis.title=element_text(size=14,face="bold"))

มีตัวอย่างที่ดีเกี่ยวกับการตั้งค่าที่แตกต่างกันเป็นtheme()พารามิเตอร์ในหน้า ggplot2


8
นอกจากนี้ยังมีฟังก์ชั่นที่ใช้งานง่ายมากในrel()ขณะนี้ เช่นsize = rel(2.0)
HongboZhu

2
เราจะเปลี่ยนlabs(x = "x axis")ขนาดตัวอักษรโดยไม่เปลี่ยนค่าของแกน x ได้อย่างไร
baxx

53

ฉันคิดว่าวิธีที่ดีกว่าในการทำเช่นนี้คือเปลี่ยนbase_sizeอาร์กิวเมนต์ มันจะเพิ่มขนาดตัวอักษรอย่างต่อเนื่อง

g + theme_grey(base_size = 22)

เท่าที่เห็นนี่


5
หากคุณมีthemeอินสแตนซ์อื่นอยู่แล้วอาจทำให้เกิดข้อขัดแย้งได้
Adam Erickson

10

หากคุณกำลังสร้างกราฟจำนวนมากคุณอาจรู้สึกเบื่อที่จะพิมพ์กราฟเส้นของโค้ดที่ควบคุมขนาดของหัวเรื่องและข้อความแต่ละกราฟ สิ่งที่ฉันมักจะทำคือการสร้างวัตถุ (ของคลาส "ชุดรูปแบบ" "gg") ที่กำหนดลักษณะของชุดรูปแบบที่ต้องการ คุณสามารถทำได้ในตอนต้นของรหัสของคุณ

My_Theme = theme(
  axis.title.x = element_text(size = 16),
  axis.text.x = element_text(size = 14),
  axis.title.y = element_text(size = 16))

ถัดไปสิ่งที่คุณต้องทำคือเพิ่ม My_Theme เข้ากับกราฟของคุณ

g + My_Theme
หากคุณมีกราฟอื่น g1 เพียงแค่เขียน:
g1 + My_Theme 
และอื่น ๆ

4

หากต้องการเปลี่ยนขนาดขององค์ประกอบข้อความ (เกือบ) ทั้งหมดในที่เดียวและพร้อมกันrel()จะมีประสิทธิภาพมาก:
g+theme(text = element_text(size=rel(3.5))

คุณอาจต้องการปรับแต่งตัวเลขเล็กน้อยเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด มันตั้งค่าทั้งป้ายชื่อแกนและแนวตั้งและชื่อและองค์ประกอบข้อความอื่น ๆ ในระดับเดียวกัน ข้อยกเว้นเดียวคือชื่อเรื่องของกริดที่ประกอบขึ้นซึ่งจะต้องตั้งค่าด้วยตนเองเป็นค่าเดียวกันตัวอย่างเช่นหากใช้ทั้ง x และ y facets ในกราฟ:
theme(text = element_text(size=rel(3.5)), strip.text.x = element_text(size=rel(3.5)), strip.text.y = element_text(size=rel(3.5)))

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.