r语言 - ggplot2 路径颜色在只需要一条路径时获得多个路径



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

但是,当我尝试像第三幅图那样将两者结合起来时,我得到了两条单独的路径,而不是一条穿过所有点的路径。

# 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负值和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")

当然,当差异为 0 时,你会得到一条黑线......(但如果您希望该行为绿色或红色,您可以稍后修改此值)

最新更新