Đây là một hack , nhưng ...
Hãy thêm một số mức yếu tố trống trong cyl
giữa các cấp thực. Sau đó, chúng tôi sẽ đảm bảo chúng được bao gồm trong cốt truyện (sử dụng drop=FALSE
) cho khoảng cách trong chú giải, nhưng sẽ đặt màu và nhãn của chúng thành giá trị trống để bạn không thể nhìn thấy chúng trong chú giải. Tôi thấy rằng tôi cũng cần phải bao gồm override.aes=list(color="white")
để tránh các hộp khóa chú giải trống vẫn được hiển thị thường xuyên trong chú giải.
mtcars$cyl = factor(mtcars$cyl, levels=c(4, 11:15, 6, 16:20, 8))
cols = hcl(seq(15,375,length.out=4)[1:3], 100, 65)
ggplot(mtcars, aes(cyl, fill=cyl)) +
geom_bar() +
coord_flip() +
scale_fill_manual(values=c(cols[1], rep("white",5), cols[2], rep("white",5), cols[3]),
labels=c(4, rep("",5), 6, rep("",5), 8), drop=FALSE) +
theme(legend.position = 'top') +
guides(fill = guide_legend(title=NULL, nrow=1, override.aes=list(color="white")))
Có vẻ như bạn có thể đặt nó bằng thứ gì đó như 'chủ đề (legend.text = element_text (margin = margin (r = 2, unit = 'in')))', nhưng điều đó dường như không làm bất cứ gì. Một cách hacky (nhưng hiệu quả) để làm điều đó là chỉ cần thêm dấu cách vào các mục: 'fill = factor (paste (cyl, ''))' – alistaire
@alistaire, đơn giản hơn nhiều so với hack của tôi. Bạn nên thêm nó làm câu trả lời. – eipi10
Có thể trùng lặp của [Có cách nào để thay đổi khoảng cách giữa các mục chú giải trong ggplot2 không?] (Http://stackoverflow.com/questions/11366964/is-there-a-way-to-change-the-spacing-between -legend-items-in-ggplot2) – user20650