SeedRandom[1] data = Join[RandomReal[1, {300000, 2}], RandomChoice[{0, 1}, {300000, 1}], 2]; Dimensions[data] > {300000, 3} binlims = Through[{Floor[Min@#, .01] &, Ceiling[Max@#, .01] &}@#] & /@ Transpose[data]; {xbins, ybins} = {##, -Subtract[##]/5} & @@@ Most[binlims]; binlists = BinLists[data, xbins, ybins, {0, 2, 2}]; binmeans = Flatten /@ Map[Mean, binlists[[All, All, All, All, -1]], {-2}]; {xticks, yticks} = MapIndexed[{#2[[1]], #} &, #] & /@ Range @@@ {xbins, ybins}; MatrixPlot[binmeans, DataReversed -> True, ColorFunction -> "Rainbow", FrameTicks -> {{#, #} & @ yticks, {#, #} & @ xticks}] [![enter image description here][1]][1] [1]: https://i.sstatic.net/CgZeb.png