2013-07-24 29 views
14

Tôi muốn thanh màu xám ở trên cùng rộng hơn, như trong, có các cạnh của nó xa hơn một chút so với phần trên cùng và dưới cùng của các chữ cái (dải.text - A, B, C, v.v.). Tôi đã nghĩ rằng dây chuyền sẽ hoạt động như đệm nhưng không.Có cách nào để tăng chiều cao của thanh strip.text trong một khía cạnh không?

ggplot(diamonds, aes(carat, price, fill = ..density..)) + 
    xlim(0, 2) + stat_binhex(na.rm = TRUE)+ 
    facet_wrap(~ color) + 
    theme(strip.text = element_text(lineheight=20)) 
+0

Tăng kích thước văn bản chính nó không phải là thỏa đáng y? – alexwhan

+1

@alexwhan, tăng kích thước văn bản cũng sẽ tăng kích thước dải, nhưng nó sẽ không thay đổi * tỷ lệ * của hai –

+0

@RicardoSaporta, đã đồng ý - Tôi thích giải pháp của bạn – alexwhan

Trả lời

22

Thứ nhất, sửa đổi mức để họ bao gồm một linebreak:

levels(diamonds$color) <- paste0(" \n", levels(diamonds$color) , "\n ") 

Sau đó điều chỉnh khi cần thiết. ví dụ:

P <- ggplot(diamonds, aes(carat, price, fill = ..density..)) + 
     xlim(0, 2) + stat_binhex(na.rm = TRUE)+ 
     facet_wrap(~ color) 

P + theme(strip.text = element_text(size=9, lineheight=0.5)) 

lineheight=0.5

P + theme(strip.text = element_text(size=9, lineheight=3.0)) 

lineheight=3.0

+1

Trả lời chậm trễ về phía tôi ... Cảm ơn, một giải pháp bẩn chúng ta hãy trung thực haha, nhưng chắc chắn có được công việc làm. Đánh giá cao sự giúp đỡ của bạn. – nzcoops

1

Với ggplot2 2.2.0, bạn có thể áp dụng thủ thuật của Ricardo mà không sửa đổi dataframe, bằng cách sử dụng labeller:

P <- ggplot(diamonds, aes(carat, price, fill = ..density..)) + 
    xlim(0, 2) + stat_binhex(na.rm = TRUE)+ 
    facet_wrap(~ color, labeller = labeller(color=setNames(paste0("\n", levels(diamonds$color), "\n"), levels(diamonds$color)))) 

P + theme(strip.text = element_text(size=9, lineheight=0.5)) 
Các vấn đề liên quan