Podobna fabuła może być również wykonany z grafiką bazowych. Oto jedna metoda wykorzystująca funkcję base image
. Ta próbka ma kategoryczną odpowiedź, a nie numeryczną.
dx <- data.frame(Tasks = c('1','2','3','4'),
Phase1 = c('Done','Done','Done','WIP'),
Phase2 = c('WIP','Done','Done',''),
Phase3 = c('','WIP','Done',''))
ff<-factor(as.matrix(dx[,2:4]),
levels=c("Done","WIP",""),
labels=c("done","wip","-empty-")
)
fx<-matrix(as.numeric(ff), ncol=ncol(dx)-1)
#use labels to assign colors
col<-c(done="darkgreen",wip="orange","-empty-"="black")
imgflip<-function(x) {t(x[nrow(x):1,])}
image(imgflip(fx),
breaks=(1:(nlevels(ff)+1))-.5,
col=col[levels(ff)],
xaxt="n", yaxt="n"
)
axis(2, at=seq(0,1,length.out=nrow(dx)), labels=rev(paste("Task",dx$Tasks)), las=2)
axis(3, at=seq(0,1,length.out=length(names(dx))-1), labels=names(dx)[-1])
, który wykona to zdjęcie.
Dzięki za miły rozwiązanie i mam upvoted ale myślę, że to literówka w bibliotece (przekształcenia), gdzie „s” brakuje przekształcenia – discipulus
Dzięki! Czy możemy mieć więcej niż jedną legendę, infekować jedną legendę w wierszu, ponieważ mam zmienne kategoryczne, które oznaczają różne dla różnych wierszy, ale mam tylko cztery rzędy z nich. – discipulus
Tak, ale nie wiem jak. Zachęcam cię do zadawania nowego pytania. –