繁体   English   中英

3D 表面 plot 在 Python 中使用 plotly

[英]3D surface plot in Python using plotly

我有一个关于 plotly 表面代码如何工作的问题。

我得到了从 dataframe 到 plot 表面 3D 图的数据,x、y 和 z 的一维数组

例子:

x (temperatures) =      [26,25,24,29,21,20,21,21,26]

y (humidity)     =      [50,60,50,40,50,70,80,90,90]

z (power consumption) = [12,13,14,11,11,10,11,12,15]

我需要 plot 每个点(例如:x1,y1,z1)作为一个表面,我已经使用了这个代码

import plotly.graph_objects as go
import numpy as np

#x,y,z from above

fig = go.Figure(data = go.Surface(z=z,
                                  x=x,
                                  y=y))

fig.update_traces(contours_z = dict(show = True , usecolormap = True ,
                                    highlightcolor = 'limegreen' , project_z = True))

fig.update_layout(title = 'Linear')

fig.show()

但它什么也没显示。

(我也知道 z 需要是二维数组,但我不知道为什么)

我该如何解决这个问题?

谢谢

我的回答包括两部分:

  • 如何在 3d 中获取 plot 这个数据。
  • 创建 3d 表面 plot 需要什么。

在 3D 中绘制数据

使用您拥有的数据 - x、y 和 z 三个向量,您可以轻松创建 3D 散点图 plot:

fig = go.Figure(data=[go.Scatter3d(x=x, y=y, z=z,
                                   mode='markers')])

fig.show()

这是它的样子,你可以旋转它并向各个方向旋转它。

在此处输入图像描述

3D 表面 Plot

要创建 3D 曲面 plot,您需要 a 和 y 的每个组合的 z 值。 将表面 plot 视为 map。 对于 map 上的每个点 (x,y),您需要提供该点的高度 (z),以便 plotly 可以创建您正在寻找的表面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM