我想改变R图(同一系列数据)中的LINE的颜色。例如,如果你有一年的星期显示温度点,并且它们与geom_line()
或同等数据有关,那么我将如何显示在更高的温度周内线条变得更深,而在较冷的周内逐渐变为黄色? (如果两个点和线可以在相同的调色板/梯度上基于相同的变量 - 例如温度而变化,那将是理想的)。如何改变R图(ggplot或类似的)中的变量的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为绿色等?
它_does_匹配;它使用'normal'的值作为段的最左边的点,因为那是你通过'aes'传递的向量。为了使颜色每50天变化一次,添加一个变量以作为颜色美学传递。 'ggplot(bp.df,aes(x = day,y = normal,color = cut(day,seq(0,200,50))))+ geom_point()+ geom_line()' – alistaire
谢谢,接下来的评论明确澄清了我的困惑。显然,单独的变量对于驱动颜色是有意义的。 –