, , . data.table, , "X/Y/Z" :
library(data.table)
dt <- data.table(melt(m))
dt <- dt[, strsplit(as.character(value), "/"), by=list(Var1, Var2)]
dt[, shift:=(1:(.N))/.N - 1/(2 * .N) - 1/2, by=list(Var1, Var2)]
dt[, height:=1/.N, by=list(Var1, Var2)]
ggplot(dt, aes(Var1,y=Var2 + shift, fill=V1, height=height)) +
geom_tile(color="yellow", size=1) + xlab('Patient') + ylab('Gene')

. , ( , geom_tile, , , , ).
m <- structure(c("SNV", "SNV", NA, NA, "INDEL/POS/NEG", "SNV", "INDEL",
"SNV", "SNV/INDEL"), .Dim = c(3L, 3L))