我想绘制一组与一条路径连接的点,如下面的第一张图所示,但是通过使用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
获取二进制颜色?
答案 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时,你会得到一条黑线...(但如果你想让这条线为绿色或红色,你可以稍后修改这个值)