Fabulous. I knew I should be able to do this using a scatter chart, but couldn't figure out how. So much better than the available free 3rd party visuals. Thank you!!
Instead of hard-coding the colors into the measure, I created a measure that just tests to see if a dot is less than or equal to the percentage, returning a 1 or a 0. DotColorTF = if(SELECTEDVALUE(WaffleTable[DotValue])