Tăng khoảng cách giữa văn bản và tiêu đề trên trục y


107

Tiêu đề trục y xuất hiện quá gần với văn bản trục.

ggplot(mpg, aes(cty, hwy)) + geom_point()

đầu ra ggplot

Tôi đã thử thay đổi giá trị của nhiều tham số theme()nhưng dường như không có gì hữu ích.

Câu trả lời:


171

Từ ggplot2 2.0.0bạn có thể sử dụng margin =đối số element_text()để thay đổi khoảng cách giữa tiêu đề trục và các số. Đặt các giá trị của mặt marginon top, right, bottom và left của phần tử.

ggplot(mpg, aes(cty, hwy)) + geom_point()+
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)))

margincũng có thể được sử dụng cho các element_textphần tử khác (xem ?theme), chẳng hạn như axis.text.x, axis.text.ytitle.


4
Phương pháp này dường như không hoạt động facet_grid, trong khi câu trả lời do Adam B gợi ý thì có (tức là ngắt dòng bằng cách sử dụng \ n)
Anonymous

@Anonymous Bạn có thể cho một ví dụ mà margin =đối số này không sai không?
Didzis Elferts

Tôi đã thử nó với theme_bw. Xin lỗi, đăng toàn bộ mã là không thể đọc được / lộn xộn ...
Anonymous

3
@Anonymous Nếu bạn sử dụng theme_bw()thì theme_bw()nên được sử dụng trước theme()hàm vì trong các chủ đề được xác định trước, đã có sẵn đối số cho tiêu đề trục.
Didzis Elferts

Cảm ơn bạn đã làm rõ!
Ẩn danh

97

Dựa trên bài đăng trên diễn đàn này: https://groups.google.com/forum/#!topic/ggplot2/mK9DR3dKIBU

Nghe có vẻ như điều dễ dàng nhất để làm là thêm dấu ngắt dòng (\ n) trước trục x và sau nhãn trục y của bạn. Có vẻ dễ dàng hơn rất nhiều (mặc dù hơi kém) so với các giải pháp được đăng ở trên.

ggplot(mpg, aes(cty, hwy)) + 
    geom_point() + 
    xlab("\nYour_x_Label") + ylab("Your_y_Label\n")

Hy vọng rằng sẽ giúp!


4
Tôi thường sử dụng phương pháp này, nó nhanh hơn nhiều và nó không yêu cầu thêm tùy chọn khác vào ggplot trừ khi tôi cần một số điều chỉnh cụ thể.
R. Prost
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.