散点图中的动态alphas

时间:2016-11-16 14:58:58

标签: python matplotlib

我试图制作一个能产生吸引人的散点图的功能。我有两个相互矛盾的欲望:

  • 可以看到单独的,单独的数据点;
  • 多个数据点靠近在一起,使得它们的点重叠,应该变暗。

我目前正在完成Alpha通道的使用。前者,我通过包含没有alpha通道的散点图的副本来完成:

import numpy as np
import matplotlib.pyplot as plt

N = 100000

fig = plt.figure()
fig.set_facecolor("white")

x = np.random.randn(N)
y = np.random.randn(N)

base_colour = (0.25, 0.4, 0.6)
adj_colour = tuple(0.75 + 0.25*x for x in base_colour)
plt.scatter(x, y, color=adj_colour, linewidth=0)
plt.scatter(x, y, color=base_colour, alpha=0.05, linewidth=0)

这会生成如下图片(取决于您的RNG):

Example scatter plot

注意"异常值"是单独可见的,但中心比外边缘更暗,这意味着数据点在那里更密集地分布。

但是,请注意,大部分中心区域都是相同的蓝色阴影:alpha足够高,许多不同的重叠点都具有大约1的alpha值。(事实上,它是' s如此接近1,中间的每个像素都是精确相同的蓝色阴影。)由于方式"重叠alpha通道"工作," white"在每个像素中,点的密度呈指数衰减。

我可以使用较低的alpha。但是,对于数据点明显较少的图形或人口较少的区域而言,这看起来并不好看。有没有办法解决这个问题,或者我是否必须让我的函数类型的用户使用对他们有用的alpha值?

否则,有没有办法在没有在同一图中制作两个散点图的情况下完成我的工作?

0 个答案:

没有答案