Làm cách nào tôi có thể đặt gốc / chặn của trục y và trục x trong ggplot2?
Đường thẳng của trục x phải chính xác tại y=Z
.
Với Z=0
hoặc giá trị khác.
Làm cách nào tôi có thể đặt gốc / chặn của trục y và trục x trong ggplot2?
Đường thẳng của trục x phải chính xác tại y=Z
.
Với Z=0
hoặc giá trị khác.
Câu trả lời:
xlim
và ylim
đừng cắt nó ở đây. Bạn cần sử dụng expand_limits
, scale_x_continuous
và scale_y_continuous
. Thử:
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))
Bạn có thể cần điều chỉnh mọi thứ một chút để đảm bảo các điểm không bị cắt đứt (xem, ví dụ, điểm tại x = 5
và y = 5
.
expand=expand_scale(mult=c(0,0.1))
để bạn vẫn có được phần đệm ở đầu trên: stackoverflow.com/a/59056123/8400969
Chỉ cần thêm chúng vào ggplot của bạn:
+ 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))
Cuối cùng, hãy lớn chăm sóc không vô tình loại trừ dữ liệu ra khỏi bảng xếp hạng của bạn. Ví dụ: một position = 'dodge'
thanh / biểu đồ có thể rời khỏi biểu đồ hoàn toàn nếu giá trị của nó bằng 0 và bạn bắt đầu trục bằng 0, vì vậy bạn có thể không nhìn thấy nó và biết rằng nó ở đó. Tôi khuyên bạn nên vẽ đầy đủ dữ liệu trước, kiểm tra, sau đó sử dụng mẹo trên để cải thiện tính thẩm mỹ của cốt truyện.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))
bằng cách nào đó mà không có nó không hoạt động