Yeah, you’re right, I simplified the problem too much. This is what the data actually looks like (notice the 2 columns on the left:
and this is a crude heat map for this data created in Numbers:
I guess I can combine the two left columns into a new unique index, then flatten, create the heat map and somehow map one of its axis to the two column data labels?