有没有办法用matplotlib制作“3D云图”?
我做了一个图表,这是一个三维散点图,里面有2000个数据点,每种颜色的点都有。请看下面的图:
这个图是我用matplotlib的三维散点图功能做的。
我在想有没有办法把这个图变成一种“云”图?就像是一个包围盒,把所有(或者大部分)蓝色或绿色的点都包裹起来。我的目标是想更清楚地展示这两种颜色之间的分隔。虽然现在已经可以做到这一点,但我觉得用“云”图可能会更清晰一些。
因为我找不到关于这种图的相关资料,所以还没有开始写代码。
1 个回答
3
这不是一个真正的云,而更像是一个想法:你可以使用 scipy.interpolate.interp2d
来对你的数据进行插值处理,这样可以在更密集的网格上显示数据。然后你可以用以下方式来绘制数据:
- 使用更大的标记尺寸,比如
s=200
- 设置较低的透明度,比如
alpha=.1
- 选择一种在中间变成白色的 颜色映射,比如
cmap='PRGn'
然后
ax.scatter(xs, ys, zs, c=zs, marker='D', s=200, alpha=.1, cmap='PRGn')
就可以得到这样的效果: