我嘲笑了下面的代码以提供上下文。函数,序列间隔,名称和颜色都是任意的。为多层ggplot2绘图创建任意图例排序
library(ggplot2)
function1 <- function(input) {
input * 3
}
function2 <- function(input) {
2 * input + 1
}
function3 <- function(input) {
input + 4
}
x1 <- seq(1, 10, 0.1)
x2 <- seq(1, 10, 0.2)
x3 <- seq(1, 10, 0.5)
y1 <- sapply(x1, function1)
y2 <- sapply(x2, function2)
y3 <- sapply(x3, function3)
data1 <- data.frame(x1, y1)
data2 <- data.frame(x2, y2)
data3 <- data.frame(x3, y3)
ggplot() +
geom_point(data = data1, aes(x1, y1, color = "B")) +
geom_point(data = data2, aes(x2, y2, color = "C")) +
geom_point(data = data3, aes(x3, y3, color = "A")) +
scale_color_manual(name = "Functions",
values = c("B" = "Green", "C" = "Red",
"A" = "Blue")) +
xlab("X") +
ylab("Y")
下面是导致情节的截图:
有几个以前回答问题,解决类似的问题与传说排序,如本one,但没有人可以处理与多层地块。这question解决了版本0.9.2的图例排序,但是ggplot2 is currently on version 2.2.1。此外,它似乎只处理升序或降序。
我想知道是否有任何方法来自定义图例中值的顺序。例如,在图例中,是否可以将它显示为B,C,A而不是A,B,C?
你不需要'sapply'运行的功能。你可以做'y1 = function1(x1)'等。 – eipi10
感谢您的提示。我对R很新,所以我仍然在搞清楚。 – arbitrarystringofletters