在这个数据集中,我想比较成对观察并使用每个观察(a-d)和一条线的两个点(前后)。该线应根据点之间的关系着色(蓝色表示正值,红色表示负值)。关于如何在ggplot中执行此操作的任何想法?
obs<-c('a','b','c','d')
before<-c(2,4,6,8)
after<-c(4,2,8,4)
df<-cbind(before, after)
row.names(df)=obs
as.data.frame(df)
1 个答案:
答案 0 :(得分:1)
你可以试试这个:
library(ggplot2)
library(tidyr)
df <- as.data.frame(df)
df$col <- factor(df$after - df$before > 0,labels=c("descending","ascending"))
df$obs <- obs
df_l <- gather(df,key,value,-col,-obs)
df_l
ggplot(df_l,aes(x=key,y=value,colour=col,group=obs)) +
geom_line()