ggplot2 ระยะขอบพื้นที่แปลง?


88

มีวิธีง่ายๆในการเพิ่มช่องว่างระหว่างหัวเรื่องพล็อตและพื้นที่พล็อตด้านล่าง (ช่องที่มีข้อมูล) ในทำนองเดียวกันฉันต้องการเว้นวรรคระหว่างชื่อแกนและป้ายชื่อแกน

กล่าวอีกนัยหนึ่งมีวิธี "เลื่อนหัวเรื่องขึ้นเล็กน้อยชื่อแกน y ไปทางซ้ายเล็กน้อยและหัวเรื่องแกน x ลดลงเล็กน้อย" หรือไม่?


1
คุณสามารถวาง"\n"อักขระบางตัวลงในชื่อเรื่องเพื่อบังคับขึ้นบรรทัดใหม่
joran

คำตอบ:


118

คุณสามารถปรับอัตรากำไรขั้นต้นพล็อตที่มีplot.marginในtheme()และจากนั้นย้ายป้ายชื่อแกนและชื่อของคุณด้วยข้อโต้แย้งของvjust element_text()ตัวอย่างเช่น :

library(ggplot2)
library(grid)
qplot(rnorm(100)) +
    ggtitle("Title") +
    theme(axis.title.x=element_text(vjust=-2)) +
    theme(axis.title.y=element_text(angle=90, vjust=-0.5)) +
    theme(plot.title=element_text(size=15, vjust=3)) +
    theme(plot.margin = unit(c(1,1,1,1), "cm"))

จะให้สิ่งนี้แก่คุณ:

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

หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับtheme()พารามิเตอร์ต่างๆและอาร์กิวเมนต์คุณสามารถป้อน?themeที่พรอมต์ R


4
ขอบคุณ! ฉันไม่แน่ใจว่าจะต้องเตรียมอะไรเพื่อให้การgrid::unitsโต้แย้งนี้ทำงานplot.marginได้ดี จะเปิดออกคุณจะต้องให้ความยาว-4 unitsตัวเลขเพื่อ น่าเสียดายที่xข้อโต้แย้งunitsนี้ไม่ได้ถูกนำกลับมาใช้ใหม่ในทางใดทางหนึ่ง นอกจากนี้คุณอาจจะรู้อย่างนี้แล้ว แต่มูลค่า noting / อัปเดตที่optsจะเลิกตอนนี้ในรุ่นล่าสุดของ ggplot2 (0.9.2+) แทนที่ด้วยthemeเป็นที่แทนที่ในขณะนี้โดยtheme_text element_text
Paul McMurdie

45
ลำดับของขอบสำหรับ plot.margin คือหน่วย (c (บนขวาล่างซ้าย) หน่วย) หากใครต้องการประหยัดเวลาในการค้นหา
mightypile

19
@generic_user: อาจจะง่ายต่อการจำตามที่ระบุไว้ที่นี่ :t, r, b, l (To remember order, think trouble).
ตุง

3
อีกทางเลือกหนึ่งที่จะจำ ... มันเป็นเพียงแค่เข็มนาฬิกาจากด้านบน: top, right, ,bottom left
spops

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