xóa tiêu đề chú giải trong ggplot


111

Tôi đang cố gắng xóa tiêu đề của một huyền thoại trong ggplot2:

df <- data.frame(
  g = rep(letters[1:2], 5),
  x = rnorm(10),
  y = rnorm(10)
)

library(ggplot2)
ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom")

nhập mô tả hình ảnh ở đây

Tôi đã thấy câu hỏi này và không có giải pháp nào ở đó có vẻ hiệu quả với tôi. Hầu hết đưa ra lỗi về cách optskhông được dùng nữa và sử dụng themethay thế. Tôi cũng đã thử các phiên bản khác nhau của theme(legend.title=NULL), theme(legend.title=""), theme(legend.title=element_blank), tin nhắn, vv lỗi điển hình là:

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1)
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1)

Tôi đang sử dụng ggplot2lần đầu tiên kể từ khi phiên bản 0.9.3 được phát hành và tôi cảm thấy khó khăn khi điều hướng một số thay đổi ...


5
Bạn có thể sử dụng labs()cho việc này: Thêm dòng labs(colour = "")vào mã của bạn tạo ra biểu đồ ở trên.
Dennis

Câu trả lời:


191

Bạn gần như đã ở đó: chỉ cần thêm theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  theme(legend.title=element_blank())

Trang này trên Cookbook for R cung cấp rất nhiều chi tiết về cách tùy chỉnh các huyền thoại.


2
Thao tác này sẽ xóa tất cả các tiêu đề chú giải. Để kiểm soát cục bộ nhiều hơn, guide = guide_legend()lệnh hoạt động. Để xóa tiêu đề chú giải tô màu, nhưng vẫn giữ tiêu đề chú giải màu, ví dụscale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
PatrickT

9

Điều này cũng hoạt động và cũng minh họa cách thay đổi tiêu đề chú giải:

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  scale_color_discrete(name="")

7
Điều này thay thế tiêu đề bằng một chuỗi trống và do đó gây ra khoảng trống thừa giữa nhãn và hộp chú giải, sẽ chỉ hiển thị nếu chú giải có hộp hoặc nền có màu khác với vị trí của nó. Vì vậy, sẽ ổn cho một cách tiếp cận nhanh chóng và sẵn sàng trong những trường hợp đơn giản như theme_bw()nhưng không phải là tốt nhất trong trường hợp chú giải có một chiếc hộp xung quanh nó và được đặt ở đâu đó trên khu vực cốt truyện (cách tiếp cận thông thường của tôi).
PatrickT

1
+1 cho quan sát. tôi gặp sự cố khi sử dụng hai huyền thoại khác nhau và khoảng trắng giữa chúng được tạo ra bởi giải pháp trên. Cài đặt scale_color_manual(name=element_blank())+cho chú giải thấp hơn đã giải quyết được điều đó cho tôi
joaoal

@joaoal, element_blank()có vẻ là cách tiếp cận được đề xuất. Cài đặt name = NULL là một cách khác.
PatrickT

1

Một tùy chọn khác sử dụng labsvà cài đặt màu thành NULL.

ggplot(df, aes(x, y, colour = g)) +
  geom_line(stat = "identity") +
  theme(legend.position = "bottom") +
  labs(colour = NULL)

nhập mô tả hình ảnh ở đây


0

Đối với Error: 'opts' is deprecated. Sử dụng theme()thay thế. (Không còn tồn tại; được sử dụng lần cuối trong phiên bản 0.9.1) 'Tôi đã thay thế opts(title = "Boxplot - Candidate's Tweet Scores")bằng labs(title = "Boxplot - Candidate's Tweet Scores"). Nó đã làm việc!


0

Vì bạn có thể có nhiều hơn một truyền thuyết trong một cốt truyện, nên một cách để xóa chọn lọc chỉ một trong các tiêu đề mà không để lại khoảng trống là đặt nameđối số của scale_hàm NULL, tức là

scale_fill_discrete(name = NULL)

(kudos tới @pascal để nhận xét về một chuỗi khác )

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.