如何解决更改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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。