Tôi đang cố sử dụng reorder
trong cốt truyện được thêm vào khuôn mặt cũng sử dụng scales = free_x
trong ggplot2, nhưng chức năng sắp xếp lại không sắp xếp lại trục x đúng cách. Dưới đây là những gì tôi đang chạy:R: Sắp xếp lại trục x đã được cắt xén với free_x trong ggplot2
library(ggplot2)
df <- read.table("speaking_distribution_by_play.txt",
header = F,
sep = "\t")
ggplot(df, aes(x=reorder(V2, V3), y=V3)) +
geom_bar(stat = "identity") +
facet_wrap(~V1, ncol = 4, scales = "free_x") +
opts(title = "Distribution of Speakers in Shakespearean Drama") +
xlab("Speaking Role") +
ylab("Words Spoken") +
opts(axis.text.x=theme_text(angle=90, hjust=1))
Chạy mã vào khung dữ liệu đọc từ this tab-separated file mang lại một âm mưu trong đó trục x của từng lô mặt được lệnh chỉ một phần. Someone else on SO hỏi một câu hỏi rất giống nhau, nhưng giải pháp được đề xuất duy nhất là sử dụng sắp xếp lưới. Do tập dữ liệu của tôi lớn hơn một chút so với tập dữ liệu trong câu hỏi đó, tuy nhiên, đây không phải là một thao tác nhanh chóng khủng khiếp, vì vậy tôi muốn hỏi: Có cách nào để sắp xếp lại trục x của mỗi ô mặt để hiển thị các thanh theo thứ tự tăng (hoặc giảm) kích thước? Tôi sẽ rất biết ơn vì bất kỳ sự giúp đỡ nào mà người khác có thể đưa ra về câu hỏi này.
Whoa ... 'opts' đã bị phản đối kể từ năm 2012. Tôi nghĩ đã đến lúc bạn cập nhật 'gói ggplot2' của bạn. 'Opts()' đầu tiên của bạn với tiêu đề có thể được thay thế bằng 'labs()' (và 'xlab' và' ylab' của bạn có thể đi vào bên trong), và 'opts' thứ hai của bạn sẽ được thay thế bởi' chủ đề() '. – Gregor
Cảm ơn, Gregor! Bất kỳ suy nghĩ về câu hỏi sắp xếp lại? – duhaime
Nếu bạn muốn các đơn đặt hàng khác nhau trong các khía cạnh khác nhau, tôi nghĩ rằng 'grid.arrange' là đặt cược tốt nhất của bạn. – Gregor