更改matplotlib的alpha混合规则并输出矢量化图形

问题描述

我有由在某些空间点处相交的各种曲线组成的图形。 这些曲线具有关联的“强度”,由其透明度表示,该透明度由曲线的Alpha通道控制。

对于我的应用程序,当其中两条曲线在空间中相交时,它们的强度在该特定位置相加。我希望交集的alpha通道表示相同的行为。或更笼统地说,要为Alpha通道预定义一个求和规则(例如,将超出该范围的任何内容裁剪为1);这与Matplotlib中实现的用于混合Alpha通道的标准“ a + b-ab”规则相反。

  • 这里有一个类似的问题Is it possible to do additive blending with matplotlib? 但是我也在寻找一种输出矢量化图形的解决方案。
  • 我知道可以使用 LineCollections ,然后通过蛮力找到任何线段的交集,并根据任何预定义的规则手动设置Alpha颜色,但这并不是真正的像素和像素。仔细检查后,由于使用了矢量化图形,因此看起来很奇怪;线段没有完全相交,然后可以选择哪个线段来提供加和强度/透明度值,从而导致奇怪的结果。我也相信应该有一个更优雅的解决方案。

示例代码以测试alpha混合:

import numpy as np
import matplotlib.pyplot as plt

x  = np.linspace(0,1,5)
y1 = np.linspace(0,5)
y2 = 1-np.linspace(0,5)
y3 = np.ones(5)/2

plt.plot(x,y1,color='k',alpha=1/3,linewidth=4)
plt.plot(x,y2,y3,linewidth=4)

plt.show()

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...