【问题标题】:Plotly 3D plot in python在 python 中绘制 3D 绘图
【发布时间】:2021-07-21 09:27:52
【问题描述】:

我想在 python 中使用 plotly 制作 3D 绘图。实际上它是动画的第一步,但首先我需要知道如何创建它的 3D 散点图,如下所示,它是在 matplotlib 中制作的。 我有dataset,看起来像这样。

现在,我想根据提到的日期对其进行动画处理,但是我在 plotly 的官方网站上获得的代码是这样的,其中大多数是相似的。

import plotly.express as px
df = px.data.iris()
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
              color='species')
fig.show()

现在,我不明白应该如何分配 X,Y and Z 来获得动画情节。因为我需要的所有 13 列都在针对日期的情节中。

作为参考,我发现了这个site 也就是说,

To get a 3D scatter plot you need to specify the trace as a plotly.graph_objs.Scatter3d object or as a dict with a type: 'scatter3d' key.

Feel free to share a full reproducible example if you’d like to work through more of the details.

但这还不够。

请帮我解决这个问题。正确代码或指导的链接对于如何设置变量以获得 3D 绘图动画非常有帮助。谢谢。

【问题讨论】:

    标签: python matplotlib plotly


    【解决方案1】:

    为了更新 plotly 中的现有绘图,它们具有FigureWidget 接口。如果您可以在小部件工作的环境中操作(例如 Jupyter notebook),那么以下代码将重复更新现有绘图中的数据。

    它不像动画那样很棒。如果在旋转视图时数据更新,它会猛拉回原始位置。所以这不是很好。但是,如果您对这些限制感到满意,那么这将使您入门。

    import plotly.express as px
    df = px.data.iris()
    fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
                  color='species')
    
    import threading
    import time
    import numpy as np
    fw = go.FigureWidget(fig)
    
    def do():
        while True:
            fw.data[0]['x'] = np.random.rand(len(fw.data[0]['x']))
            time.sleep(1)
    
    t = threading.Thread(target=do)
    t.start()
    
    fw # run this in cell after which the plot will be generated.
    

    这就是它的外观。请注意旋转视图期间不幸的跳跃。

    【讨论】:

    • 我没有使用虹膜集。请在上面提到数据
    • 我认为数据集不是你的问题,而是采取什么方法。我回答了你可以使用什么方法。
    • 另外,如果这就是你想要的,你的问题非常不清楚......请让你的问题更清楚。
    • 我为此向@William 道歉。你的方法确实很有帮助。但是,如果您在数据的屏幕截图中看到,我需要 134 列与日期对应的 3D 列。请帮助我,因为我无法找到正确的代码或指导如何做到这一点。真的很有帮助。谢谢
    • 需要是体积视频是没有意义的。如果数据不是 3 维的,那么将其设为“体积”不会显示任何信息。
    猜你喜欢
    • 2023-04-07
    • 2015-10-03
    • 1970-01-01
    • 2019-07-01
    • 2019-11-30
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多