Làm cách nào để thao tác với văn bản dải của các ô facet_grid?


100

Tôi tự hỏi làm cách nào để có thể thao tác kích thước của văn bản dải trong các ô có khía cạnh. Câu hỏi của tôi tương tự như câu hỏi về tiêu đề cốt truyện , nhưng tôi đặc biệt quan tâm đến việc thao tác không phải tiêu đề cốt truyện mà là văn bản xuất hiện trong tiêu đề khía cạnh (dải_hút).

Ví dụ, hãy xem xét tập dữ liệu mpg.

    library(ggplot2) 
    qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)

Kết quả đầu ra tạo ra một số tiêu đề khía cạnh không phù hợp với dải.

Tôi nghĩ rằng phải có một cách để sử dụng gridđể đối phó với văn bản dải. Nhưng tôi vẫn là một người mới và không chắc từ phần gridphụ lục trong cuốn sách của Hadley , chính xác, làm thế nào để làm điều đó. Ngoài ra, tôi sợ nếu tôi làm sai nó sẽ làm hỏng máy giặt của tôi, vì tôi tin rằng tất cả công nghệ đều được kết nối thông qua The Force :-(

Rất cám ơn trước.

Câu trả lời:


134

Ví dụ, bạn có thể sửa đổi strip.text.x(hoặc strip.text.y) bằng cách sử dụngtheme_text()

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))

Cập nhật: cho phiên bản ggplot2> 0.9.1

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))

+1 Rất tốt. Có cách nào để cải thiện chú thích trục x không?
George Dontas

Cảm ơn rcs. Tôi với gd047, và có lẽ đó phải là một câu hỏi riêng? Những gì bạn đang nhận thấy là sự đông đúc của các giá trị x chính, tôi nghĩ vậy. Nên có một cách để đặt các giá trị của các dấu đánh dấu trục x và trục chính theo cách thủ công, nhưng tôi không thể nhớ nó là gì :-(
briandk

@ gd047:axis.text.x=theme_text(...)
rcs

1
Các liên kết trong Q này phải hơi nhiều thông tin: stackoverflow.com/questions/2258784/list-of-ggplot2-options
Roman Luštrik


6

Tôi đoán trong ví dụ về mpgviệc thay đổi góc xoay và kích thước phông chữ là ổn, nhưng trong nhiều trường hợp, bạn có thể thấy mình với các biến có nhãn khá dài và có thể trở nên đau cổ (theo nghĩa đen) khi thử đọc các nhãn dài được xoay. .

Vì vậy, ngoài (hoặc bổ sung) cho việc thay đổi góc và kích thước, tôi thường định dạng lại nhãn của các yếu tố xác định facet_gridbất cứ khi nào chúng có thể được phân chia theo cách có ý nghĩa.

Thông thường, nếu tôi có một dataset$variablevới chuỗi trông giống như

c("median_something", "aggregated_average_x","error","something_else")

Tôi chỉ đơn giản làm:

reformat <function(x,lab="\n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }

[có lẽ có nhiều định nghĩa tốt hơn reformatnhưng ít nhất cái này hoạt động tốt.]

dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')

Và khi xem xét khía cạnh, tất cả các nhãn sẽ rất dễ đọc:

ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)

1
Có lẽ một cái gì đó như thế này là tốt hơn: cấp (chim $ có hiệu lực) <- gsub ("", "\ n", trình độ (chim $ có hiệu lực))
DCA
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.