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

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

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

【问题讨论】:

    标签: python matplotlib 3d data-visualization


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2014-07-30
        • 1970-01-01
        • 2021-12-31
        • 1970-01-01
        • 2019-10-28
        • 1970-01-01
        • 2013-06-26
        • 2020-06-26
        • 2015-09-01
        相关资源
        最近更新 更多