我有一个散点图,它显示了来自两个不同数据集的大量点。在某些区域,有大量的点,即使使用非常低的alpha值(例如alpha=0.1),您也无法透过这一堆点看到后面的内容。但是,在那个alpha值下,你几乎看不到稀疏地区的点。有没有一种方法来限制堆积点的alpha值,或者以某种方式在不淡化稀疏区域的同时使得密集区域的背景可见?代码片段如下:
# Code to populate the datasets not included.
fig, ax = plt.subplots()
ax.scatter(x1, y1, s=12, color='red')
ax.scatter(x2, y2, s=12, color='blue', alpha=0.1)
# Plus code to do xlabels and such not included.
生成这个:
正如您所看到的,很难看出底部红色腿的边界,同时使顶部蓝色腿突出。
有没有办法创建这种效果?
提前感谢。
编辑
一个好的建议似乎是使用hexbin而不是scatter。这看起来很有希望,但颜色仍然不能很好地混合。例如,
ax.hexbin(x1, y1, cmap='Reds', mincnt=1, vmax=100)
ax.hexbin(x2, y2, cmap='Blues', mincnt=1, vmax=50, alpha=0.8, linewidths=0)
产生:
希望能够将蓝色和红色合并。也许每个像素可以从一个数据集中获取R值,从另一个数据集中获取B值?但在hexbin中似乎不是一个选项。
编辑
应用Thomasillo的答案后:
谢谢,我认为它比原来的看起来更好。