2015-10-28 50 views
5

Vì vậy, đây là mã của tôi cho ggplot của tôi. Làm cách nào để thay đổi tiêu đề của chú giải một cách dễ dàng nhất? Tôi biết rằng tôi chỉ có thể thay đổi biến số gg_group của mình thành my_title <- c(rep("train",10), rep("validation", 10)). Nhưng tôi muốn thay đổi tiêu đề thành "whatever I want" mà không thay đổi bất kỳ biến nào.Thay đổi tiêu đề chú thích ggplot

library(ggplot2) 
y <- c(rnorm(10,1), rnorm(10,3)) 
x <- rep(seq(1,10,1),2) 
gg_group <- c(rep("train",10), rep("validation", 10)) 

gg_data <- data.frame(y=y, x=x, gg_group=gg_group) 

p <- ggplot(gg_data, aes(x=x, y=y, group=gg_group)) 
p + geom_line(aes(colour=gg_group)) 

Tôi cũng đã thử mã này:

p + geom_line(aes(colour=gg_group)) + scale_shape_discrete(name="Dataset",labels=c("Train", "Validation"))

Nhưng điều này không làm việc. * Chỉnh sửa, kiểm tra snwer tuyệt vời từ Jaap và JasonAizkalns.

+2

Bạn có thể muốn sử dụng 'scale_color_discrete' – Jaap

Trả lời

1

Lý do nó không được làm việc là vì bạn đã không sử dụng một shape trong mã ggplot của bạn. Thay vào đó, bạn nên sử dụng scale_color_discrete như sau:

scale_color_discrete("Dataset") 
5

@Jaap là chính xác. Nếu bạn sử dụng scale_color_discrete, bạn có thể thay đổi tên của chú thích bằng tên và bạn không phải chuyển bất kỳ đối số nào đến labels vì chúng sẽ giả định tên được xác định trong thẩm mỹ colour của bạn. Đó là xem xét sự khác nhau giữa:

p + geom_line(aes(colour = gg_group)) + 
    scale_color_discrete(name = "Dataset") 

p + geom_line(aes(colour = gg_group)) + 
    scale_color_discrete(name = "Dataset", 
         labels = c("New Label 01", "New Label 02")) 
Các vấn đề liên quan