如何使 3D python 散点图中的数据点看起来像“圆盘”而不是“球体”

Posted

技术标签:

【中文标题】如何使 3D python 散点图中的数据点看起来像“圆盘”而不是“球体”【英文标题】:How to make data points in a 3D python scatter plot look like "discs" instead of "spheres" 【发布时间】:2015-06-22 21:54:42 【问题描述】:

在标准的 3D python 绘图中,默认情况下,每个数据点都表示为 3D 球体。对于我正在绘制的数据,z 轴非常敏感,而 x 和 y 轴非常通用,所以有没有办法让散点图上的每个点像往常一样在 x 和 y 方向上展开例如,s=500,但不会沿 z 轴散布?理想情况下,这看起来像一组堆叠的圆盘,而不是重叠的球体。

有什么想法吗?我对 python 比较陌生,我不知道是否有办法用散点图制作像这样的自定义数据点。

【问题讨论】:

【参考方案1】:

实际上,我可以使用 matplotlib.patches 库来做到这一点,为每个数据点创建一个补丁,然后在 mpl_toolkits.mplot3d.art3d 的帮助下使其成为我想要的任何形状。

【讨论】:

【参考方案2】:

您可能会寻找一种叫做“抖动”的东西。看一眼 Matplotlib: avoiding overlapping datapoints in a "scatter/dot/beeswarm" plot 它通过向您的数据添加随机噪声来工作。

另一种方法可能是减少 z 轴上数据的方差(例如,应用对数函数)或调整比例。你可以用 ax.set_zscale("log") 做到这一点。它记录在这里http://matplotlib.org/mpl_toolkits/mplot3d/api.html#mpl_toolkits.mplot3d.axes3d.Axes3D.set_zscale

【讨论】:

以上是关于如何使 3D python 散点图中的数据点看起来像“圆盘”而不是“球体”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Plotly 3D 散点图中设置点标记的样式/格式?

如何根据动画图中的发生时间对 3D 散点图进行颜色编码?

更改 c3.js 散点图中气泡的大小

如何在python中的散点图中平滑数据点?

python 绘制三维图形、三维数据散点图

R语言使用scatterplot3d包的scatterplot3d函数可视化3D散点图(3D scatter plots)在3D散点图中添加垂直线和数据点描影3D图中添加回归平面