2013-09-13 4 views
0

Возможно ли построение следующих данных по данному рангу и определение этого ранга в geom_plot? Или я должен заказать коэффициент раньше. Я имею в виду, что я хочу построить идентификаторы в следующем порядке B, A, C, где B темно-синий, а C - голубой.Условные уровни коэффициента в 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) 

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 

ответ

0

Relevel ваш 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 

barplot

Чтобы получить цветовой градиент наоборот, вам нужно изменить масштаб от alpha к чему-то вроде colour, альфа- смешение не отображает более светлые цвета поверх более темных, но смешивает их, делая участок нечитаемым (попробуйте сами с scale_alpha_discrete(range=c(1, 0.2))). Тем не менее, я оставлю вам.

+0

Многие thx, но 'data $ id <- relevel (data $ id," B ")' выглядит немного неудобно, если вы хотите изменить его, прежде чем предлагать 'reorder (data [," id "], данные [ , "rank"], length) 'является более общим способом. – Heiko

Смежные вопросы