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

如何调整mpl-scatter-density散点密度图中的点大小?

如何调整mpl-scatter-density密度图的视觉点大小

mpl-scatter-density的scatter_density函数本质是生成二维核密度热力图,而非直接绘制单个散点。你觉得“点极小”,其实是密度图的粒度或核扩散范围太小导致的,可通过以下方式调整视觉效果:


方法1:调整密度核的扩散范围(sigma参数)

sigma控制密度计算时的核标准差,数值越大,单个数据点对周围区域的影响范围越广,生成的密度色块会更大、更平滑。

修改后的代码:

import numpy as np
import matplotlib.pyplot as plt
import mpl_scatter_density

n = 5_000
x = np.random.normal(4, 2, n)
y = np.random.normal(3, 1, n)

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='scatter_density')
# 增大sigma值,让密度区域更扩散
density = ax.scatter_density(x, y, sigma=2)
fig.colorbar(density, label='Number of points per pixel')
plt.show()

方法2:调整渲染像素尺寸(pixel_size参数)

pixel_size控制密度图渲染时的单个像素物理尺寸,数值越大,像素颗粒感越强,视觉上密度区域也会显得更大。可结合sigma一起调整:

density = ax.scatter_density(x, y, pixel_size=2, sigma=1.5)

额外需求:叠加显示大尺寸散点

如果你需要同时显示单个散点和密度图,可在密度图基础上叠加普通scatter函数,通过s参数控制散点大小:

import numpy as np
import matplotlib.pyplot as plt
import mpl_scatter_density

n = 5_000
x = np.random.normal(4, 2, n)
y = np.random.normal(3, 1, n)

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='scatter_density')
# 绘制密度图(半透明)
density = ax.scatter_density(x, y, alpha=0.5)
# 叠加普通散点,s控制大小,alpha控制透明度避免遮挡
ax.scatter(x, y, s=20, alpha=0.2, color='red')
fig.colorbar(density, label='Number of points per pixel')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:42:53