Visualização de gráficos de dispersão com pontos sobrepostos no matplotlib

Eu tenho que representar cerca de 30.000 pontos em um gráfico de dispersão no matplotlib. Esses pontos pertencem a duas classes diferentes, então eu quero descrevê-los com cores diferentes.

Eu consegui fazê-lo, mas há um problema. Os pontos se sobrepõem em muitas regiões e a classe que eu descrevo por último será visualizada em cima da outra, escondendo-a. Além disso, com o gráfico de dispersão não é possível mostrar quantos pontos estão em cada região. Eu também tentei fazer um histograma 2d com histogram2d e imshow, mas é difícil mostrar os pontos pertencentes a ambas as classes de forma clara.

Você pode sugerir uma maneira de deixar claro tanto a distribuição das classes quanto a concentração dos pontos?

EDIT: Para ser mais claro, esta é aligação para meu arquivo de dados no formato "x, y, class"

questionAnswers(2)

yourAnswerToTheQuestion