如何用R图中的变量改变LINE颜色(ggplot或类似)

时间:2016-12-15 23:34:33

标签: r graph ggplot2 colors gradient

我试图改变R图中LINE的颜色(在同一系列数据中)。例如,如果你有一个点显示一年中几周的温度,并且它们与geom_line()或等价物相关联,那么我将如何显示线条在较高温度周内呈深红色并逐渐变为在较冷的温度下变黄周? (如果根据相同的变量,相同的调色板/渐变,两个点和线可能会有所不同 - 比如说温度,那将是理想的。)

bp.df <- NULL
bp.weeks <- 26
bp.days <- 7 * bp.weeks
bp.df$day <- 1:bp.days
bp.df$week <- ceiling(bp.df$day / 7)
bp.mean.normal <- 100
bp.sd.normal <- 20

bp.df <- as.data.frame(bp.df)

bp.df$normal <- rnorm(nrow(bp.df),bp.mean.normal, bp.sd.normal)
bp.df$day <- as.numeric(bp.df$day)

# make sure ggplot2 is installed and loaded

g <- ggplot(bp.df, aes(x = day, y = normal, color = normal)) + 
    geom_point() + 
    geom_line(col = bp.df$normal)
g

为什么线条颜色与“普通”变量的水平不匹配?我明白,因为它们连接了两个点,所以这些线必须“决定”使用哪个值,但这个输出似乎使颜色完全随机。

如果渐变中的变化不起作用,我将如何使该线在前50天变为红色,在接下来的50天变为绿色等等?

1 个答案:

答案 0 :(得分:0)

试试这个:

g <- ggplot(bp.df, aes(x=day, y = normal, color = normal)) + geom_point() +
geom_line(aes(color=normal))

g

似乎col参数与aes参数中的颜色不同。