บังคับให้เริ่มต้นที่ 0


139

ฉันจะตั้งค่าต้นกำเนิด / การสกัดกั้นของแกน y และแกน x ใน ggplot2 ได้อย่างไร

แนวแกน x y=Zควรจะตรงที่

ด้วยZ=0หรือค่าที่กำหนดอื่น

คำตอบ:


199

xlimและylimอย่าตัดมันที่นี่ คุณจำเป็นต้องใช้expand_limits, และscale_x_continuous scale_y_continuousลอง:

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for

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

p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

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

คุณอาจจำเป็นต้องปรับเปลี่ยนสิ่งเล็ก ๆ น้อย ๆ เพื่อให้แน่ใจว่าจุดที่จะไม่ได้รับการตัดออก (ดูตัวอย่างเช่นจุดที่และx = 5y = 5


29
ฉันยังต้องระบุขีด จำกัด : scale_x_continuous(expand = c(0, 0), limits = c(0,5))อย่างใดโดยที่มันไม่ได้ทำงาน
JelenaČuklina

3
ฉันคิดว่ามีอีกหนึ่งชิ้นที่มีประโยชน์ซึ่งใช้สิ่งที่คล้ายกันexpand=expand_scale(mult=c(0,0.1))ดังนั้นคุณยังคงได้รับช่องว่างด้านบน: stackoverflow.com/a/59056123/8400969
Michael

4

เพียงเพิ่มสิ่งเหล่านี้ใน ggplot ของคุณ:

+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

ตัวอย่าง

df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for


p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) + 
  scale_y_continuous(expand = c(0, 0), limits = c(0, NA))

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

สุดท้ายใช้เวลาที่ดีดูแลไม่ให้โดยไม่ได้ตั้งใจยกเว้นข้อมูลออกแผนภูมิของคุณ ตัวอย่างเช่น a position = 'dodge'อาจทำให้แถบหลุดออกจากแผนภูมิทั้งหมด (เช่นถ้าค่าเป็นศูนย์และคุณเริ่มแกนที่ศูนย์) ดังนั้นคุณอาจไม่เห็นมันและอาจไม่รู้ด้วยซ้ำว่ามันอยู่ที่นั่น ฉันแนะนำให้พล็อตข้อมูลเต็มรูปแบบก่อนตรวจสอบจากนั้นใช้เคล็ดลับข้างต้นเพื่อปรับปรุงความสวยงามของพล็อต


เป็นไปได้ไหมที่จะสร้างสิ่งนี้เป็นธีม ggplot ใหม่
Bolle

@Bolle ผมไม่แน่ใจ แต่สนใจที่จะหาเช่นกันที่คุณสามารถขอเป็นคำถามที่แยกจากกันและเชื่อมโยงไปที่นี่
stevec

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