Истинный и проверенный подход заключается в увеличении разбросанных точек и использовании альфа-канала, чтобы сделать их полупрозрачными. Это должно дать хорошее представление о том, где сосредоточены красные и синие точки.
Вы также можете попробовать tricontourf , например, с z = -1 для missed_shots и z = 1 для made_shots ,
Может быть, что-то вроде этого, хотя очень непонятно, как это будет выглядеть с вашими данными.
import matplotlib.pyplot as plt
import numpy as np
shots_x = np.concatenate([made_shots.LOC_X, missed.shots_LOC_X])
shots_y = np.concatenate([made_shots.LOC_Y, missed.shots_LOC_Y])
shots_z = np.concatenate([np.repeat(1, len(made_shots)), np.repeat(-1, len(missed_shots))])
plt.tricontourf(shots_x, shots_y, shots_z, cmap='coolwarm')
plt.show()
Другая возможность может быть hexbin
, которая будет вызывается следующим образом с указанными выше данными:
plt.hexbin(shots_x, shots_y, C=shots_z, cmap='coolwarm', gridsize=30)