ฉันจะจัดการข้อความแถบของแปลง facet_grid ได้อย่างไร


100

ฉันสงสัยว่าฉันจะจัดการขนาดของข้อความแถบในแปลงเหลี่ยมเพชรพลอยได้อย่างไร คำถามของฉันคล้ายกับคำถามเกี่ยวกับชื่อเรื่องแต่ฉันกังวลเป็นพิเศษกับการจัดการไม่ใช่ชื่อเรื่อง แต่เป็นข้อความที่ปรากฏในชื่อแง่มุม (strip_h)

ตัวอย่างเช่นพิจารณาชุดข้อมูล mpg

    library(ggplot2) 
    qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)

ส่งผลให้การส่งออกผลิตชื่อแง่มุมบางส่วนที่ไม่พอดีกับแถบ

ฉันคิดว่าต้องมีวิธีใช้gridจัดการกับแถบข้อความ แต่ฉันยังเป็นมือใหม่และไม่แน่ใจจากgridภาคผนวกในหนังสือของ Hadleyว่าต้องทำอย่างไร นอกจากนี้ฉันกลัวว่าถ้าฉันทำผิดมันจะทำให้เครื่องซักผ้าของฉันพังเพราะฉันเชื่อว่าเทคโนโลยีทั้งหมดเชื่อมต่อผ่าน The Force :-(

ขอบคุณมากล่วงหน้า

คำตอบ:


135

คุณสามารถแก้ไขstrip.text.x(หรือstrip.text.y) โดยใช้theme_text()ตัวอย่างเช่น

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))

อัปเดต:สำหรับ ggplot2 เวอร์ชัน> 0.9.1

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))

+1 ดีมาก มีวิธีปรับปรุงคำอธิบายประกอบแกน x หรือไม่?
George Dontas

ขอบคุณ rcs ฉันใช้ gd047 และบางทีนั่นอาจเป็นคำถามแยกกัน? สิ่งที่คุณสังเกตเห็นคือการรวมกันของค่า x หลัก ๆ ฉันคิดว่า ควรมีวิธีตั้งค่าของเครื่องหมายขีดแกน x หลักและแกน y ด้วยตนเอง แต่ฉันจำไม่ได้ว่าคืออะไร :-(
briandk

@ gd047:axis.text.x=theme_text(...)
rcs

1
ลิงก์ใน Q นี้ควรให้ข้อมูลบ้าง: stackoverflow.com/questions/2258784/list-of-ggplot2-options
Roman Luštrik

32

ปัจจุบันการใช้งานoptsและtheme_textดูเหมือนจะเลิกใช้แล้ว R แนะนำให้ใช้themeและelement_text. สามารถดูคำตอบได้ที่นี่: http://wiki.stdout.org/rcookbook/Graphs/Facets%20%28ggplot2%29/#modifying-facet-label-text

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))

6

ฉันเดาว่าในตัวอย่างของmpgการเปลี่ยนมุมการหมุนและขนาดตัวอักษรนั้นใช้ได้ แต่ในหลาย ๆ กรณีคุณอาจพบว่าตัวเองมีตัวแปรที่มีป้ายกำกับที่ค่อนข้างยาวและอาจทำให้ปวดคอได้ (ตามตัวอักษร) เพื่อลองอ่านฉลากที่มีความยาวแบบหมุน .

ดังนั้นนอกจากนี้ (หรือส่วนเติมเต็ม) ในการเปลี่ยนมุมและขนาดฉันมักจะจัดรูปแบบป้ายกำกับของปัจจัยที่กำหนดfacet_gridเมื่อใดก็ตามที่สามารถแยกออกได้ในลักษณะที่เหมาะสม

โดยปกติถ้าฉันมีdataset$variableสตริงที่ดูเหมือน

c("median_something", "aggregated_average_x","error","something_else")

ฉันแค่ทำ:

reformat <– function(x,lab="\n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }

[อาจจะมีคำจำกัดความที่ดีกว่าreformatแต่อย่างน้อยคำจำกัดความนี้ก็ใช้ได้ดี]

dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')

และเมื่อทำการปรับแต่งป้ายกำกับทั้งหมดจะสามารถอ่านได้มาก:

ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)

1
อาจจะดีกว่านี้: ระดับ (Birds $ effect) <- gsub ("", "\ n", ระดับ (birds $ effect))
dca
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.