ggplot2路径颜色只需要一个就可以获得多个路径

时间:2014-11-17 08:38:14

标签: r plot ggplot2

我想绘制一组与一条路径连接的点,如下面的第一张图所示,但是通过使用adf$up标志来增加或减少X的颜色设置,如第二幅图

但是,当我尝试将两者合并为第三个图时,我得到两条不同的路径,而不是通过所有点的单条路径。

# hysteresis plotting in ggplot2
library(ggplot2)
set.seed(123)
N <- 20
adf <- data.frame(X=rnorm(N), Y=rnorm(N))
adf$up <- c(FALSE, diff(adf$X)>0 )
qplot(X, Y, data=adf, geom=c('point', 'path'))          # plot 1
qplot(X, Y, data=adf, col=up, geom='point')             # plot 2
qplot(X, Y, data=adf, col=up, geom=c('point', 'path'))  # plot 3

我可以通过使用真实的颜色值来获得我想要的东西,如图4所示 - 但我更喜欢二进制颜色。

adf$diff <- c(0, diff(adf$X))
qplot(X, Y, data=adf, col=diff, geom=c('point', 'path'))   # plot 4

如何为路径adf$up获取二进制颜色?

1 个答案:

答案 0 :(得分:1)

您可以为负值创建-1变量,为正值创建1变量,然后使用连续色标:

adf$diff2 <- sign(adf$diff)
qplot(X, Y, data=adf, col=diff2, geom=c('point', 'path')) + scale_colour_gradient2(low="red",mid="black",high="green", guide="none")

当然,当diff为0时,你会得到一条黑线...(但如果你想让这条线为绿色或红色,你可以稍后修改这个值)