我正在尝试在ggplot2中获取一个图例,该图例将使用以下代码显示我的数据的标签和颜色:
valueVector <- vector()
breakVector <- vector()
foo <- as.data.frame(Seatbelts)
p <- ggplot(foo, aes(x=drivers, y=DriversKilled))
p <- p + geom_line(aes(y = front, colour = "front"), size = .5)
valueVector <- c(valueVector,"red")
breakVector <- c(breakVector,"front")
p <- p + geom_line(aes(y = rear, colour = "rear"), size = .5)
valueVector <- c(valueVector,"blue")
breakVector <- c(breakVector,"rear")
p <- p + geom_line(aes(y = kms/100, colour = "kms"), size = .5)
valueVector <- c(valueVector,"green")
breakVector <- c(breakVector,"kms")
p <- p + geom_line(aes(y = VanKilled, colour = "VanKilled"), size = .5)
valueVector <- c(valueVector,"black")
breakVector <- c(breakVector,"VanKilled")
p <- p + scale_colour_manual("", values = valueVector, breaks = breakVector)
此时,valueVector = c(“红色”,“蓝色”,“绿色”,“黑色”),
breakVector = c(“前方”,“后方”,“公里”,“范杀”),
和p创建一个图形,其中front = red,rear = green,kms = blue,VanKilled = black。
正如您所看到的那样,值的顺序已被洗牌,随后颜色不是我试图将它们设置为的颜色。我找不到任何押韵或理由,每次制作新图时似乎都不一样。有谁知道如何解决这个问题?
答案 0 :(得分:2)
你对这个做错了。 ggplot2使用框架来创建图形,这需要一些熟悉。你应该阅读一些介绍性材料。以下是您的示例的基本概念,
d <- data.frame(Seatbelts)
d$kms <- d$kms/100
require(reshape2) # to transform the data into long format
m <- melt(d, meas = c("front", "rear", "kms", "VanKilled"))
# now we map the variables to aesthetic parameters
ggplot(m, aes(drivers, value, colour=variable)) +
geom_line()