ฉันจะตั้งค่าต้นกำเนิด / การสกัดกั้นของแกน y และแกน x ใน ggplot2 ได้อย่างไร
แนวแกน x y=Z
ควรจะตรงที่
ด้วยZ=0
หรือค่าที่กำหนดอื่น
ฉันจะตั้งค่าต้นกำเนิด / การสกัดกั้นของแกน y และแกน x ใน ggplot2 ได้อย่างไร
แนวแกน x y=Z
ควรจะตรงที่
ด้วยZ=0
หรือค่าที่กำหนดอื่น
คำตอบ:
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 = 5
y = 5
expand=expand_scale(mult=c(0,0.1))
ดังนั้นคุณยังคงได้รับช่องว่างด้านบน: stackoverflow.com/a/59056123/8400969
เพียงเพิ่มสิ่งเหล่านี้ใน 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'
อาจทำให้แถบหลุดออกจากแผนภูมิทั้งหมด (เช่นถ้าค่าเป็นศูนย์และคุณเริ่มแกนที่ศูนย์) ดังนั้นคุณอาจไม่เห็นมันและอาจไม่รู้ด้วยซ้ำว่ามันอยู่ที่นั่น ฉันแนะนำให้พล็อตข้อมูลเต็มรูปแบบก่อนตรวจสอบจากนั้นใช้เคล็ดลับข้างต้นเพื่อปรับปรุงความสวยงามของพล็อต
scale_x_continuous(expand = c(0, 0), limits = c(0,5))
อย่างใดโดยที่มันไม่ได้ทำงาน