Ein ähnliches Grundstück kann auch mit Basis Grafiken gemacht werden. Hier ist eine Methode, die die Basisfunktion image
verwendet. Dieses Beispiel hat eine kategorische Antwort und keine numerische Antwort.
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])
, die dieses Bild produzieren wird.
Vielen Dank für eine schöne Lösung, und ich habe upvoted aber ich denke, dass es ein Tippfehler in der Bibliothek ist (umformen), wo ‚s‘ fehlt reshape – discipulus
Dank! Können wir mehr als eine Legende haben, tatsächlich eine Legende pro Zeile, da ich kategoriale Variablen habe, die für verschiedene Zeilen unterschiedlich sind, aber ich habe nur vier Reihen davon. – discipulus
Ja, aber ich weiß nicht wie. Ich würde Sie ermutigen, eine neue Frage zu stellen. –