R - создание легенды для трех наборов данных на одном графике с использованием ggplot - PullRequest
3 голосов
/ 02 мая 2011

Мне было интересно, можно ли создать поле легенды для графика, содержащего графики нескольких рядов, используя ggplot в R. По сути, это то, что я делаю.

x <- c(1,2,3,4)
y <- c(1.1,1.2,1.3,1.4)
y2 <- c(2.1,2.2,2.3,2.4)
x3 <- c(4,5,6,7)
y3 <- c(3.1,3.2,3.3,3.2)
p1 <- data.frame(x=x,y=y)
p2 <- data.frame(x=x,y=y2)
p3 <- data.frame(x=x3,y=y3)

ggplot(p1, aes(x,y)) + geom_point(color="blue") + geom_point(data=p2, color="red") + geom_point(data=p3,color="yellow") 

Командавыше составит график всех трех наборов данных, p1, p2 и p3 в трех разных цветах.Я знаю, что я еще не указал имена каждого набора данных, но как мне создать легенду, которая идентифицирует различные наборы данных?Другими словами, я просто хочу легенду, в которой говорится, что все синие точки - это P1, все красные точки - это P2, а все желтые точки - это P3.

1 Ответ

5 голосов
/ 02 мая 2011

Вам необходимо превратить их в один data.frame и сопоставить эстетику цвета, с которой поступают точки.Вы можете использовать melt из reshape пакета для создания единого data.frame:

zz <- melt(list(p1 = p1, p2 = p2, p3 = p3), id.vars = "x")

ggplot(zz, aes(x, value, colour = L1)) + geom_point() +
    scale_colour_manual("Dataset", values = c("p1" = "blue", "p2" = "red", "p3" = "yellow"))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...