[英]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 需要是二维数组,但我不知道为什么)
我该如何解决这个问题?
谢谢
我的回答包括两部分:
使用您拥有的数据 - x、y 和 z 三个向量,您可以轻松创建 3D 散点图 plot:
fig = go.Figure(data=[go.Scatter3d(x=x, y=y, z=z,
mode='markers')])
fig.show()
这是它的样子,你可以旋转它并向各个方向旋转它。
要创建 3D 曲面 plot,您需要 a 和 y 的每个组合的 z 值。 将表面 plot 视为 map。 对于 map 上的每个点 (x,y),您需要提供该点的高度 (z),以便 plotly 可以创建您正在寻找的表面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.