R ggplot2中因子的排序级别

R ggplot2中因子的排序级别,r,ggplot2,R,Ggplot2,是否可以按给定秩绘制以下数据,并在geom_plot中指定该秩?或者我应该先订购因子。我的意思是,我想按以下顺序绘制ID,B,A,C,其中B是深蓝色,C是浅蓝色 tim.seq <- seq(as.POSIXlt("2013-07-01 00:00:00", origin="1960-01-01", tz="GMT"), as.POSIXlt("2013-07-8 00:00:00", origin="1960-01-01", tz="GMT"),

是否可以按给定秩绘制以下数据,并在
geom_plot
中指定该秩?或者我应该先订购因子。我的意思是,我想按以下顺序绘制ID,B,A,C,其中B是深蓝色,C是浅蓝色

tim.seq <- seq(as.POSIXlt("2013-07-01 00:00:00", origin="1960-01-01", tz="GMT"),
               as.POSIXlt("2013-07-8 00:00:00", origin="1960-01-01", tz="GMT"),
               by="1 hour")
id <- factor(sample(LETTERS[1:3], length(tim.seq), T, prob=c(0.4,0.8,0.2)))
rank <- factor(id, levels=levels(id), label=c(2,3,1))
data <- data.frame(time=tim.seq, id=id, rank=rank)

p1 <- ggplot(data, aes(x=time, y=..count.., alpha=id))
p1 <- p1 + geom_bar(fill="darkblue", binwidth=60*60*24, position="identity")
p1 <- p1 + scale_alpha_discrete(range=c(1, 0.2))
p1

tim.seq重新调整您的
id
系数:

library(ggplot2)
tim.seq<-seq(as.POSIXlt("2013-07-01 00:00:00",origin = "1960-01-01",tz="GMT"),
             as.POSIXlt("2013-07-8 00:00:00",origin = "1960-01-01",tz="GMT"),by="1 hour")
id<-factor(sample(LETTERS[1:3],length(tim.seq),T,prob=c(0.4,0.8,0.2)))

rank<-factor(id,levels=levels(id),label=c(2,3,1))
data<-data.frame(time=tim.seq,id=id,rank=rank)
# Relevel factor id
data$id <- relevel(data$id, "B")

p1 <- ggplot(data, aes(x=time, y=..count.., alpha=id))
p1<-p1+ geom_bar(fill="darkblue",binwidth=60*60*24,position = "identity")
# Changed your direction of alpha range
p1<-p1+ scale_alpha_discrete(range=c(0.2, 1))
p1
库(ggplot2)
tim.seqMany thx,但
数据$id