【发布时间】:2021-11-28 11:59:20
【问题描述】:
我想将两个散点图绘制到相同的轴上,并将上面的数据点变成透明的,这样另一个图就会发光。但是,我希望整个上图具有均匀的透明度级别,这样上图的叠加标记不会像我简单地设置 alpha=0.5 那样将它们的不透明度相加。
换句话说,我希望先渲染散点图并将其设置为一个恒定的透明度级别。从技术上讲,这对于光栅图形和矢量图形都应该是可能的(因为 SVG 支持图层透明度,afaik),但对我来说两者都可以。
这是一些示例代码,显示了我不想实现的目标。 ;)
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(1, figsize=(6,4), dpi=160)
ax = fig.gca()
s1 = ax.scatter(np.random.randn(1000), np.random.randn(1000), color="b", edgecolors="none")
s2 = ax.scatter(np.random.randn(1000), np.random.randn(1000), color="g", edgecolors="none")
s2.set_alpha(0.5) # sadly the same as setting `alpha=0.5`
fig.show() # or display(fig)
例如,我希望 (2,2) 周围的绿色标记在它们叠加的地方不会更暗。 matplotlib 可以做到这一点吗?
感谢您的宝贵时间! :)
【问题讨论】:
标签: python matplotlib scatter-plot