tôi có thể thay đổi vị trí của nhãn dải trong ggplot từ trên xuống dưới không?


80

Tôi biết đây không phải là vấn đề trực quan hóa dữ liệu, nhưng ông chủ đã yêu cầu nó, vì vậy tôi cần tìm hiểu xem liệu có thể thực hiện được không.

Cảm ơn!



11
ggplot2 là một phần mềm mạnh mẽ nhưng vẫn cố chấp- đôi khi nó là cách của ggplot hoặc không có cách nào cả.
Sharpie

đồng ý, cần phải làm một số thay đổi sử dụng lưới điện sau đó, một đường cong học tập dốc một lần nữa
lokheart

Xem bài đăng trên diễn đàn được liên kết trong phần nhận xét trong stackoverflow.com/questions/10058839/… , cung cấp yêu cầu
hack

1
Bạn có thể vui lòng hủy chấp nhận câu trả lời được chấp nhận không? Nó không còn đúng nữa, nhưng câu trả lời này là điểm nhấn hàng đầu khi tìm kiếm câu hỏi trên Google.
Konrad Rudolph

Câu trả lời:


97

Một câu trả lời cho những người đang tìm kiếm trong năm 2016.

Kể từ ggplot22.0, đối số switch sẽ thực hiện điều này cho facet_gridhoặc facet_wrap:

Theo mặc định, các nhãn được hiển thị ở trên cùng và bên phải của ô. Nếu "x", các nhãn trên cùng sẽ được hiển thị ở dưới cùng. Nếu "y", các nhãn bên phải sẽ được hiển thị ở bên trái. Cũng có thể được đặt thành "cả hai".

ggplot(...) + ... + facet_grid(facets, switch="both")

Kể từ ggplot2 2.2.0 ,

Giờ đây, các dải có thể được định vị tự do facet_wrap()bằng cách sử dụng đối số dải.position (không dùng nữa switch).

Tài liệu hiện tại, vẫn ở mức 2.1, nhưng strip.positionđược ghi lại trên tài liệu dành cho nhà phát triển.

Theo mặc định, các nhãn được hiển thị trên cùng của ô. Sử dụng dải.position, có thể đặt nhãn ở một trong bốn cạnh bằng cách thiết lậpstrip.position = c("top", "bottom", "left", "right")

ggplot(...) + ... + facet_wrap(facets, strip.position="right")

2
Bản cập nhật 2020 - ggplot 3.3 - facet_grid vẫn sử dụng switch với các đối số của x, yhoặc both.
nniloc

10

bây giờ bạn có thể sử dụng facet_wrap(~var, strip.position = "bottom"), mặc dù vì một số lý do, điều này dẫn đến các nhãn nằm phía trên các nhãn đánh dấu đánh dấu trục, thay vì bên dưới (mà tôi nghĩ sẽ có ý nghĩa hơn), như bạn có thể thấy từ ảnh chụp màn hình của một phần nhỏ trên đồ thị của tôi

ảnh chụp màn hình của đồ thị

Nếu bạn muốn có nhãn bên dưới, bạn phải làm điều này

ggplot(zzz, aes(x = c1, y = c2)) +
  facet_wrap(~ gp, scales = "free", nrow = 3, strip.position = "bottom") +
  geom_point() +
  theme(
    aspect.ratio = 1,
    strip.background = element_blank(),
    strip.placement = "outside"
  )

Như đã thấy ở đây: https://github.com/tidyverse/ggplot2/issues/2622


-2

Câu trả lời là có!

theme(strip.text=element_text(vjust=-10))

Số -10 được xác định bởi tỷ lệ và đơn vị bạn đang sử dụng trong âm mưu của mình.


1
Tôi cũng không ảnh hưởng gì
geotheory

Điều này chỉ điều chỉnh văn bản, không phải vị trí của các dải trên biểu đồ.
Taylor White,

1
Đối với tôi cũng không ảnh hưởng gì, khuyên bạn nên sử dụng switchđối số, như được chỉ định ở trên. Để trả lời cụ thể OP; switch = "x"sẽ di chuyển các nhãn xuống dưới cùng của âm mưu.
EcologyTom

Cảm ơn bạn ! Giải pháp của bạn đã giúp tôi khắc phục một vấn đề khác mà tôi gặp phải: căn chỉnh các nhãn (sử dụng hjust thay vì vjust mặc dù).
rvezy

-5

Để theo dõi việc sử dụng chủ đề:

chủ đề (dải.text = element_text (vjust = -10))

Hãy chắc chắn rằng tất cả các nhãn của bạn đều có cùng một số ký tự xuống dòng.

Label /n Facet /n Onesẽ điều chỉnh ở một tỷ lệ khác với Label /n Facet Two.

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.