You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将matplotlib 3.3.4版本散点图中的所有点设置为完全不透明?

问题原因

matplotlib从3.3.2版本开始调整了极小尺寸标记的抗锯齿渲染逻辑,默认开启的抗锯齿会让s参数小于1的散点自动叠加半透明效果,即便是显式指定alpha=1.0也会因为渲染逻辑出现类似密度图的叠加效果。

可用解决方案(均无需回退版本)

  • 方案1:单独关闭当前散点的抗锯齿,在plt.scatter参数中添加antialiased=False即可,示例代码:
    plt.scatter(y[:,0], y[:,1], c='r', s=0.01, alpha=1.0, antialiased=False)
    
    该方案对matplotlib 3.3.4版本完全生效,可直接得到所有点完全不透明的散点图。
  • 方案2:如果需要保留抗锯齿效果,可关闭散点的默认描边,添加linewidths=0参数,示例代码:
    plt.scatter(y[:,0], y[:,1], c='r', s=0.01, alpha=1.0, linewidths=0)
    
  • 方案3:全局关闭散点的默认描边,在代码最开头添加配置:
    import matplotlib.pyplot as plt
    plt.rcParams['scatter.edgecolors'] = 'none'
    
    配置后所有散点默认无描边,也能解决小尺寸点的半透明问题。

内容的提问来源于stack exchange,提问作者ponir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:45:09