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

标签 python matplotlib alpha alpha-transparency

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

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

我想添加有关每个点的偏心率的信息。 为此,我有第三个长度相同的数组 p_100tgw_e100ecc_100 的项目范围从 0 到 1。

所以我想使用来自 ecc_100 的数据来设置我的点的透明度,创建某种阴影比例。

我试过这个:

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

但是我得到了这个错误:

ValueError: setting an array element with a sequence.

最佳答案

根据documentation alpha 只能是标量值。

因此,除了一个一个地循环您的所有观点之外,我看不到任何其他方法。

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

不过我认为标签会很奇怪,因此您可能需要手动创建图例。 我从我的解决方案中省略了它。

我想一个使 alpha 关键字参数表现得像 cs 的补丁会很受欢迎。

2015 年 5 月 6 日更新 根据this issue ,更改 alpha 以接受数组是不会发生的。错误报告建议通过 RGBA 数组设置颜色以控制 alpha 值。这听起来比我建议单独绘制每个点更好。

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

关于python - 在 matplotlib 图中设置数据数组的散点透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738881/

相关文章:

python - 如何在 Python 3 中模拟 4 位整数?

python - 索引错误 : cannot fit 'int' into an index-sized integer

c# - Python 中的 XMLSerializer (C#) 等效项?

python - matplotlib - 用于容器的符号

python - 在每一步的 for 循环中绘制 matplotlib 图形

python - 根据值列表在 python 中重新排序字典

python - 如何增加 matplotlib pyplot 中轴的物理大小?

ios - UIVisualEffect View 的值不应小于 1,这会干扰 iOS 中的模糊

c - GDI 单色位图在每次创建 HBITMAP 时翻转位

c# - 调整 PNG 图像大小,而不丢失完全透明像素的颜色数据