R 按组更改hline的颜色:ggplot2

R 按组更改hline的颜色:ggplot2,r,ggplot2,R,Ggplot2,我有一个facet\u grid图,每个图有2个geom\u hlines。我想把每一行分别涂上颜色。我想如果我将此颜色添加到geom\u hline数据框中,我可以提供aes内部的颜色。此选项按组着色,但使用默认的ggplot颜色 代码如下: p <- qplot(mpg, factor(sample(c("a", "b", "c", "d"), nrow(mtcars), T)), data=mtcars, facets = vs ~ am) hline.da

我有一个
facet\u grid
图,每个图有2个
geom\u hline
s。我想把每一行分别涂上颜色。我想如果我将此颜色添加到
geom\u hline
数据框中,我可以提供
aes
内部的颜色。此选项按组着色,但使用默认的ggplot颜色

代码如下:

p <- qplot(mpg, factor(sample(c("a", "b", "c", "d"), nrow(mtcars), T)), 
           data=mtcars, facets = vs ~ am)

hline.data <- data.frame(z = factor(c("a", "b", "c", "d")), 
    vs = c(0,0,1,1), am = c(0,1,0,1))

hline.data <- transform(hline.data, z0 = as.numeric(z))
hline.data <- rbind.data.frame(hline.data, hline.data)
hline.data[5:8, 1] <- c("b", "c", "d", "a")
hline.data[5:8, 4] <- c(2, 3, 4, 1)
hline.data[, "col"] <- rep(c("red", "black"), each=4)

p + geom_hline(aes(yintercept = z0, colour=col), hline.data)

p您只需设置刻度值:

+ scale_colour_manual(values = c("black","red"))

您只需设置比例值:

+ scale_colour_manual(values = c("black","red"))

由于您指定的是数据中的精确值(
hline.data
),因此需要使用身份等级:

+ scale_colour_identity()

由于您指定的是数据中的精确值(
hline.data
),因此需要使用身份等级:

+ scale_colour_identity()

嗯……
比例\颜色\手册(值=c(“红色”、“黑色”))
?:)记住,这不是基本图形!哦,天哪,这是一个无聊的时刻,我离开ggplot2太久了。请您作为答案发布。嗯……
比例\u颜色\u手册(值=c(“红色”、“黑色”))
?:)记住,这不是基本图形!哦,天哪,这是一个无聊的时刻,我离开ggplot2太久了。这似乎是最明确的+1谢谢。这似乎是最明确的+1谢谢。