在matplotlib图中设置数据数组的散点图透明度

Arg*_*ina 2 python alpha matplotlib alpha-transparency

我正在用matplotlib绘制数据,我从两个numpy数组中获得了一个散点图:

ax1.scatter(p_100,tgw_e100,color ='m',s = 10,label ="time 0")

我想补充一下每个点的偏心率信息.为了这个目的,我具有相同长度的第三阵列p_100tgw_e100,ecc_100其项目范围从0到1.

因此,我想使用ecc_100创建某种阴影比例的数据来设置我的点的透明度.

我试过这个:

ax1.scatter(p_100,tgw_e100,color='m',alpha = ecc_100,s=10,label="time 0")
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud)

Han*_*rén 8

根据文档, alpha只能是标量值.

因此,我看不到任何其他方式,而是逐个循环你的所有观点.

for x, y, a in zip(p_100, tgw_e100, ecc_100):
    ax1.scatter(x, y, color='m',alpha = a, s=10)
Run Code Online (Sandbox Code Playgroud)

我认为标签会很奇怪,所以你可能需要手工创建传奇.我从我的解决方案中省略了

我想一个补丁来使alpha关键字参数表现得像c并且s欢迎.

2015年5月6日更新 根据此问题,更改alpha为接受阵列不会发生.错误报告建议通过RGBA数组设置颜色以控制alpha值.这听起来比我自己绘制每个点的建议要好.

c = np.asarray([(0, 0, 1, a) for a in alpha])
scatter(x, y, color=c, edgecolors=c)
Run Code Online (Sandbox Code Playgroud)