Python 如何使用matplotlib scatter()调整每个点的alpha?
例如,我想提供一个alpha值数组,该数组的长度与我想用散点绘制的点的数量相同 我看到有一个解决办法,手动计算rbg颜色值并使用颜色贴图,有没有更简单的方法Python 如何使用matplotlib scatter()调整每个点的alpha?,python,matplotlib,Python,Matplotlib,例如,我想提供一个alpha值数组,该数组的长度与我想用散点绘制的点的数量相同 我看到有一个解决办法,手动计算rbg颜色值并使用颜色贴图,有没有更简单的方法 如果这是唯一的方法,我如何抽象该函数,以便只提供元素、颜色和透明度值,以获得所需的颜色贴图?我不知道我可能会使用什么颜色,透明度权重将发生变化,因此我想要更通用的颜色。您可以使用matplotlib.colors.to_rgb(a) 导入matplotlib.pyplot作为plt 从matplotlib.colors导入到_rgb,再导入
如果这是唯一的方法,我如何抽象该函数,以便只提供元素、颜色和透明度值,以获得所需的颜色贴图?我不知道我可能会使用什么颜色,透明度权重将发生变化,因此我想要更通用的颜色。您可以使用
matplotlib.colors.to_rgb(a)
导入matplotlib.pyplot作为plt
从matplotlib.colors导入到_rgb,再导入到_rgba
将numpy作为np导入
def散射(x、y、颜色、alpha_arr、**kwarg):
r、 g,b=至rgb(颜色)
#r,g,b,u=to_rgba(彩色)
颜色=[(r,g,b,alpha)表示alpha_arr中的alpha]
plt.散射(x,y,c=颜色,**kwarg)
N=500
x=np.random.rand(N)
y=np.random.rand(N)
alpha_arr=x*y
散射(x,y,'红色',alpha_arr,s=10)#正常
散射(x,y,#efefef',alpha_arr,s=10)#ok
裁判。
scatter
的c
参数提供包含所选alpha的颜色。这是否回答了您的问题@WilliamMiller我确实看到了答案,所以那是唯一的办法?在某种程度上回答了这个问题,我不仅需要知道如何缩放任意颜色的选择,还需要知道如何正确缩放权重数组(可能不像示例中那样是一系列相等的值)。我不确定这个答案在这方面是否有很大帮助,它似乎非常特定于特定的用例。@Learning机器指定alpha值的数组可以根据您的需要创建。在这个问题中,行alphas=np.linspace(0.1,1,10)
仅用于演示,您可以提供任何大小正确的数组alphas
,它将按照您的要求工作,我喜欢它的简单性。另外,它可以在几行中进行调整,以支持输入中的颜色数组。