基于数组值的不同颜色和 alpha 值
different colours and alpha values based on array values
我有类似于以下的数组:
a_1 = [2]
v_1 = [6,7,8,9]
plt.scatter(np.tile(a_1[0],4), v_1, color='r', alpha=0.5)
在这里,我想为 v_1 数组中具有最高值的每个数据点设置一个单独的 alpha 值,使 alpha 值更接近 1 和最低的获得最小的 alpha 值。
我还有几个与上面类似的数组,具有不同长度的 v_* 数组,例如:
a_2 = [5]
v_2 = [3,0.2,1,5,7,9]
plt.scatter(np.tile(a_2[0],6), v_2, color='b', alpha=0.4)
注意: np.tile(a_*[0],length_of_v
值根据 v_x 值的长度变化 w.r.t .
这里,我想为a_*的不同值分配不同的颜色,并且对于每种颜色,需要根据分配不同的alpha值v_* 数组值。 (最高值使 alpha 值更接近 1,最小值使 alpha 值更接近 0 并且保持更好的顺序)
有人可以指定如何在具有不同 a_* 和 v_* 数组的循环中实现吗?
让我们尝试计算 alpha
并传递给 scatter
:
def get_color(v,
offset=0.3, # minimal alpha, we don't want transparent points
base_color=(1,0,0) # (1,0,0) for red, (0,1,0) for green, etc
):
v = np.array(v)
scaled = (v-v.min())/np.ptp(v)
scaled = offset + (1-offset)*scaled
return [base_color+(s,) for s in scaled]
plt.scatter(np.tile(a_1[0],4), v_1, c=get_color(v_1))
输出:
我有类似于以下的数组:
a_1 = [2]
v_1 = [6,7,8,9]
plt.scatter(np.tile(a_1[0],4), v_1, color='r', alpha=0.5)
在这里,我想为 v_1 数组中具有最高值的每个数据点设置一个单独的 alpha 值,使 alpha 值更接近 1 和最低的获得最小的 alpha 值。
我还有几个与上面类似的数组,具有不同长度的 v_* 数组,例如:
a_2 = [5]
v_2 = [3,0.2,1,5,7,9]
plt.scatter(np.tile(a_2[0],6), v_2, color='b', alpha=0.4)
注意: np.tile(a_*[0],length_of_v
值根据 v_x 值的长度变化 w.r.t .
这里,我想为a_*的不同值分配不同的颜色,并且对于每种颜色,需要根据分配不同的alpha值v_* 数组值。 (最高值使 alpha 值更接近 1,最小值使 alpha 值更接近 0 并且保持更好的顺序)
有人可以指定如何在具有不同 a_* 和 v_* 数组的循环中实现吗?
让我们尝试计算 alpha
并传递给 scatter
:
def get_color(v,
offset=0.3, # minimal alpha, we don't want transparent points
base_color=(1,0,0) # (1,0,0) for red, (0,1,0) for green, etc
):
v = np.array(v)
scaled = (v-v.min())/np.ptp(v)
scaled = offset + (1-offset)*scaled
return [base_color+(s,) for s in scaled]
plt.scatter(np.tile(a_1[0],4), v_1, c=get_color(v_1))
输出: